我正在编写一个脚本来自动注释txt文件。
我打开txt文件并将其分段成几行。然后我遍历每一行。我希望PC检查列表中的前一个元素(文本中的前一行)是否为空元素(文本中的段落划分),以及是否要添加注释。
final_list = []
something = open(x, 'r', encoding='utf8', errors='ignore')
file = something.read()
y = file.split("\n")
for position, i in enumerate(y):
if position == 0:
final_list.append(i)
elif position > 0:
z = i[position-1]
if z == '':
final_list.append("<p>"+i)
return final_list
我希望有一个最终列表,其中包含前一行的所有元素,其中某些元素用
元素标记,但是当我遍历列表时,Python给了我
IndexError:字符串索引超出范围
我不明白问题出在哪里。
答案 0 :(得分:0)
因为您没有使用list的值,所以要使用list的长度并进行迭代,而不是enumerate
。
您可以尝试一下,
for position in range(len(y)):
if position == 0:
final_list.append(i)
elif position > 0:
z = y[position-1]
if z == '':
final_list.append("<p>"+i)
答案 1 :(得分:0)
这样的事情怎么样:
last_line = ''
output_lines = []
with open('file.txt', 'r') as f:
for line in f:
line = line.strip()
if last_line == '': # if last line was empty, start a new paragraph
output_lines.append('<p>')
output_lines.append(line)
elif line == '': # if current line is empty close the paragraph
output_lines.append('</p>')
else:
output_lines.append(line)
last_line = line