python:txt文件中的索引超出范围

时间:2019-05-30 09:13:39

标签: python

我正在编写一个脚本来自动注释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:字符串索引超出范围

我不明白问题出在哪里。

2 个答案:

答案 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