Вставьте новую строку до 5 цифр, используя регулярное выражение в python - PullRequest
0 голосов
/ 15 января 2020

У меня следующая проблема: У меня есть файл .txt, который содержит информацию в следующей схеме:

ddddd name country time dddd name country time

Дд ddd обозначает 5 цифр, представляющих идентификационный номер участника. Имея доступную информацию, я зашел так далеко:

filename = 'raw_race.txt'
new_filename = 'data_race.txt'

pattern = re.compile(r'\D(\d{5})\D')

with open(filename, 'r') as readfile, open(new_filename, 'w+') as writefile:
    for line in readfile:
        writefile.write(line)
        if pattern.search(line):
            writefile.write('\n')

Это не работает (выходной файл совпадает с входным), а также добавляет абзац после шаблона, а не до.

Кто-нибудь видит, что я могу сделать? Ура!

1 Ответ

1 голос
/ 15 января 2020
for line in readfile:
    writefile.write(re.sub(r'\b(\d{5})\b', '\n\\1', line))

сделал трюк, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...