tarlis
@tarlis
Student

Как распарсить файл построчно, выловив и перезаписав мой шаблон?

import re

f1 = open("/home/tarlis/ParserTest/2.txt", 'r')
f2 = open("/home/tarlis/ParserTest/1.txt", "a")

fr = f1.read()
reg_pattern = 'title=\"(\D+)\"\D*data=\"([a-z.]+@[mailstbknox]+\.ru)'
for line in fr:
    match = re.search(reg_pattern, line)
    if match is not None:
        f2.write(match.group(1) + '|' + match.group(2) + '\n')
f2.close()
f1.close()


Matсh всегда возвращает None, хотя проверил регулярку на regex101.com все замечательно находится. Построчно файл считывается... Не понимаю в чем проблема :(

Содержание считываемого файла примерно такое:
<div>

		<a  target="_blank"   " title="Дмитрий" data="dim@mail.ru">Дмитрий </a>
</div>
  • Вопрос задан
  • 1012 просмотров
Решения вопроса 1
@bIbI4k0
Питоню
f1.read() - прочтет файл разом в строку. Последующий цикл будет проходит строку.
f1 является итерируемым, можно делать примерно так

for line in f1:
   match.re.search(r, line)
   ...


Либо читать строки через f1.readlines() в список и затем итерироваться по нему.

Я бы вам рекомендовал парсить html при помощи специализированных библиотек, например lxml или pyqyery.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы