У меня есть текстовый файл. Файл содержит строки. После нескольких строк есть одна пустая строка. Эта строка используется для обозначения конца раздела.
Первая пустая строка используется для обозначения конца основного текста и начала дополнительного текста. Если обнаружена другая пустая строка, это означает, что субтекстовая часть завершена и начинается новая основная текстовая часть.
Я написал код для решения этой проблемы в Python. Основной текст служит ключом в словаре Python, а подтекст - значением этого ключа. Несколько подтекстов хранятся в виде списка.
В коде переменные имеют следующий вид:
word : Empty dictionary
value : List containing the sub headings
key : Contains the current main heading
i : set to 1 at the start to get the first line, when a
new line is detected, it changes to -1. When another
empty line is detected, it changes to 1 again.
Здесь 1 означает, что строка содержит основной текст, а -1 означает дополнительный текст.
Здесь, если я равен 1, основной текст добавляется к ключу.
Если это -1, подтекст добавляется в список значений.
Если мы обнаружим еще одну пустую строку, мы проверяем, равен ли я -1, если это правда, мы устанавливаем обновление словаря слов с помощью {key: value}.
Затем мы снова меняем знак i.
Моя проблема в том, что программа, кажется, находится в бесконечном цикле.
Спасибо, что прочитали мою проблему. Любая помощь будет оценена.
import json
class test1:
word = {}
value = []
i = 1
key = ''
filepath = 'we.txt'
with open(filepath) as fp:
lines = fp.readlines()
for j in range(0, len(lines)):
currentline = lines[j]
if i == 1:
key = currentline
if currentline in ['\n', '\r\n']:
if i == -1:
word.update({key: value})
i = i * -1
if i == -1:
value.append(currentline)
print(word)
Вывод должен быть
mainText11: ['subtext1', 'subtext2']
maintext2: ['subtext1', 'subtext2', 'subtext3']
We.txt содержит следующее:
main heading1
sub heading1
sub heading2
main heading2
ОБНОВЛЕНИЕ:
Я сделал некоторые изменения в коде. Но проблема остается.