Уведомления

Группа в Telegram: @pythonsu

#1 Март 10, 2015 13:07:26

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк, найденных с помощью re.findall

Имеется файл 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 ("Проверка завершена")

Отредактировано Moi5es (Март 10, 2015 13:18:39)

Офлайн

#2 Март 10, 2015 16:01:11

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Вывод строк, найденных с помощью re.findall

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")



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Март 10, 2015 16:59:18

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк, найденных с помощью re.findall

Спасибо, terabayt
Вот беда, если в файле содержится строка с русскими буквами, выводятся каракули
Было
C:\Program Files\Новая папка\видео.exe…fail
Стало
C:\\Program Files\\Новая папка\\видео.exe…fail

Офлайн

#4 Март 10, 2015 17:31:21

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Вывод строк, найденных с помощью re.findall

Moi5es
Вот беда
попробуйте так
with open('test.txt', encoding='utf-8') as file1:
или сохраните файл в utf-8
или
print(file_re_fail)
замените на
print(*file_re_fail)



————————————————
-*- Simple is better than complex -*-

Офлайн

#5 Март 11, 2015 07:53:25

Moi5es
Зарегистрирован: 2014-10-15
Сообщения: 65
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывод строк, найденных с помощью re.findall

Первый вариант работает (второй не пробовал). Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version