【发布时间】:2015-08-10 21:08:39
【问题描述】:
试图让自己成为一个解析多行文本文件的脚本。对于我的一生,我无法弄清楚为什么它一直给我IndexOutofRange,但是如果我打印列表的内容,它会正确显示,当我删除或注释掉打印时,或者尝试在之后做任何进一步的处理将项目附加到列表中,我得到同样的错误。
源文本文件有一堆行,每条数据用逗号分隔,如下所示:abc,123456,abcd,efgh 我正在尝试从字符串中删除除编号部分之外的所有内容,然后将该“子字符串”添加到列表中然后将其写入输出文件。我确信我写它的方式可能不是很有效,所以请在你认为合适的时候更正。
import sys
fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
content = f.readlines()
for line in content:
line = line.split(',')
list.append(line[1])
with open(output, w) as w:
w.write(list)
索引超出范围命中list.append(line[1]) 部分。
【问题讨论】:
-
我猜,有一行只有一个参数,表示 [1] 超出范围。
-
你有一个尾随换行符,或者换句话说:一个空的最后一行?
-
您的代码假定每一行至少有一个逗号。
-
您的索引超出范围 - Python 不会说谎。在
split之后使用length(line)测试元素个数。
标签: python string list indexoutofrangeexception