У меня есть текст в файле «File1», который содержит следующий текст:
-Accounting
-HR
Some text
-IT
--Networks
--Storage
--DBA
Мне нужен фрагмент кода, который будет читать File1 построчно и заменять «-» и «-»с соответствующими тегами HTML и сохраните конечный результат, показанный ниже, в текстовом файле File2
<ul>
<li>Accounting</li>
<li>HR</li>
</ul>
Some text
<ul><li>IT
<ul>
<li>Networks</li>
<li>Storage</li>
<li>DBA</li>
</ul>
</li></ul>
До сих пор я пробовал код ниже.
Я установил два логических значения, которые используются, чтобы проверить, содержит ли текущая строка «-» или «-» значение «Ложь» изначально.Если в текущей строке есть «-» или «-», то код добавляет соответствующие теги в начало строки, изменяет логическое значение на True и переходит к следующей строке.
Теперь логические значения используются, чтобы увидеть, было ли "-" или "-" в предыдущей строке, если были тире, он добавит соответствующие теги в начало строки, которая должна быть в предыдущей строке.но мы уже в следующей строке.Другой способ - проверить, начинается ли следующая строка с «-» или «-», но я не уверен, как это сделать.Когда я использую next (), строка пропускается.Будет ли чтение из двух файлов одновременно с одним на одну строку вперед и проверять, что в следующей строке, это будет лучшим решением?
single_dash_prev_line = False
double_dash_prev_line = False
for line in File1:
current_line = line
if line[0] == "-":
if line[1] != "-":
if single_dash_prev_line == False:
new_line = "<ul><li>" + current_line[1:]
File2.write(new_line)
single_dash_prev_line = True
elif single_dash_prev_line == True:
new_line = "</li><li>" + current_line[1:]
File2.write(new_line)
single_dash_prev_line = True
elif line[1] == "-":
if single_dash_prev_line == True:
new_line = "<ul><li>" + line[2:]
print(new_line)
File2.write(new_line)
double_dash_prev_line = True
elif double_dash_prev_line == True:
new_line = "</li><li>" + line[2:]
File2.write(new_line)
double_dash_prev_line = True
elif single_dash_prev_line == True:
new_line = "</li></ul>" + current_line[1:]
File2.write(new_line)
single_dash_prev_line = False
elif double_dash_prev_line == True:
new_line = "</li></ul>" + current_line[1:]
File2.write(new_line)
single_dash_prev_line = False
else:
single_dash_prev_line = False
double_dash_prev_line = False
File2.write(current_line)