Это мой самый первый вопрос, я провел исследование, но не смог найти что-то похожее.
Основная цель моего скрипта, когда он закончен: я хочу, чтобы он сканировал все строки в текстовом файле на регулярное выражение.Если есть совпадение, текущая строка и инкрементный индекс должны быть добавлены к словару.В EOF теперь заполненный словарь должен быть записан в новый файл.
Текущая проблема: при запуске цикла for для сканирования строк словарь никогда не получает более одной записи, несмотря на то, что сканер фактически находит несколько совпадений (что подтверждается простым оператором печати, когда совпадение истинно. Что я пропустил?
for inputfile in inputfiles:
print("Processing "+ inputfile)
inputfile = os.path.join(filespath,inputfile)
with open (inputfile, "r", encoding="UTF-8") as infile:
alllines = infile.readlines()
matched_lines = {}
int_index = 1
indexer = str(int_index).zfill(5)
for line in alllines:
if re.search(match_string,line,flags=0):
matched_lines[indexer] = line
int_index += 1
print (matched_lines.items())
Вот что он выводит: Обработка Testfile 1.txt dict_items ([('00001', 'Zeile 5 \ n')])
Но это "Zeile 5 \"n "(совпадение с регулярным выражением составляет 5 $) несколько раз в текстовом файле, который он сканирует. Указанный файл выглядит следующим образом:
Zeile 3
Zeile 4
Zeile 5
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Zeile 1
Zeile 2
Zeile 3
и т. д.
Есть идеи?