当我知道索引存在时索引超出范围
Index out of Range when I know that index exists
试图让自己成为一个解析多行文本文件的脚本。对于我的生活,我无法弄清楚为什么它一直给我 IndexOutofRange
,但是如果我打印我的列表的内容,它会正确显示,当我删除或注释掉打印,或尝试做任何进一步的事情时将项目附加到列表后处理,我得到同样的错误。
源文本文件有一堆行,每条数据都用逗号分隔,如下所示:abc,123456,abcd,efgh
我试图从字符串中删除除编号部分以外的所有内容,然后添加 "substring" 到一个列表,然后将其写入输出文件。我确定我写它的方式可能不是很有效,所以请按您认为合适的方式更正。
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])
部分。
您的文件很可能在开头或结尾包含一个空行,其中不包含逗号或任何其他类型的文本。
尝试检测空行并跳过它们。
import sys
fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
content = f.readlines()
for line in content:
if line:
line = line.split(',')
list.append(line[1])
with open(output, w) as w:
w.write(list)
你可以用上面的代码找到有问题的行,它会为你打印出有问题的行。
import sys
fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
content = f.readlines()
for line in content:
if line:
line = line.split(',')
try:
list.append(line[1])
except Exception, ex:
print "problem with line", line
with open(output, w) as w:
w.write(list)
试图让自己成为一个解析多行文本文件的脚本。对于我的生活,我无法弄清楚为什么它一直给我 IndexOutofRange
,但是如果我打印我的列表的内容,它会正确显示,当我删除或注释掉打印,或尝试做任何进一步的事情时将项目附加到列表后处理,我得到同样的错误。
源文本文件有一堆行,每条数据都用逗号分隔,如下所示:abc,123456,abcd,efgh
我试图从字符串中删除除编号部分以外的所有内容,然后添加 "substring" 到一个列表,然后将其写入输出文件。我确定我写它的方式可能不是很有效,所以请按您认为合适的方式更正。
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])
部分。
您的文件很可能在开头或结尾包含一个空行,其中不包含逗号或任何其他类型的文本。
尝试检测空行并跳过它们。
import sys
fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
content = f.readlines()
for line in content:
if line:
line = line.split(',')
list.append(line[1])
with open(output, w) as w:
w.write(list)
你可以用上面的代码找到有问题的行,它会为你打印出有问题的行。
import sys
fname = sys.argv[1]
list = []
output = "output.txt"
with open(fname) as f:
content = f.readlines()
for line in content:
if line:
line = line.split(',')
try:
list.append(line[1])
except Exception, ex:
print "problem with line", line
with open(output, w) as w:
w.write(list)