Найти - Пользователи
Полная версия: Вывод строк, найденных с помощью re.findall
Начало » Python для новичков » Вывод строк, найденных с помощью re.findall
1
Moi5es
Имеется файл text.txt со следующими строчками:
C:\Program Files\Unknown\fail.exe...ok
C:\Program Files\Unknown\wine.exe...fail
C:\Program Files\Unknown\c.dll...ok

Стоит задача отобразить найденный с помощью регулярного выражения список строк, содержащий искомую комбинацию
with open(b'C:\Program Files\Unknown\text.txt', 'r') as file1:
    read_file = file1.read().encode('utf-8')
    pattern = "\w.+\.\.\.fail"
    file_re_fail = re.findall(pattern, str(read_file))
    print(file_re_fail) # выводится весь текст =(
    if len(file_re_fail) > 0:
        print ("Fail!")
    else:
        print ("Проверка завершена")
terabayt
with open('test.txt') as file1:
    read_file = file1.read()
    pattern = "\w.+\.\.\.fail"
    file_re_fail = re.findall(pattern, read_file)
    print(file_re_fail)
    if len(file_re_fail) > 0:
        print ("Fail!")
    else:
        print ("end")
Moi5es
Спасибо, terabayt
Вот беда, если в файле содержится строка с русскими буквами, выводятся каракули
Было
C:\Program Files\Новая папка\видео.exe…fail
Стало
C:\\Program Files\\Новая папка\\видео.exe…fail
terabayt
Moi5es
Вот беда
попробуйте так
with open('test.txt', encoding='utf-8') as file1:
или сохраните файл в utf-8
или
print(file_re_fail)
замените на
print(*file_re_fail)
Moi5es
Первый вариант работает (второй не пробовал). Спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB