我有一个包含25列的文本文件(大量的浮点数)。我想提取第14列并将其除以第15列。我无法提取这两列 代码:
with open('sample for north.txt') as infile:
for line in infile:
print(line.split()[13])
错误:列表索引超出范围
答案 0 :(得分:2)
您收到错误Error : list index out of range
,因为没有足够的列(至少在给定的行上)。最好检查一下,就像这一行:
with open('sample for north.txt') as infile:
for line in infile:
parts = line.split()
if len(parts) > 13: # or whatever is appropriate
print(parts[13])
说明:拆分线时,它会返回一个项目列表。例如,如果有3列,.split()
将返回包含3个项目的列表。列表的长度因每行而异,具体取决于数据。
您的代码假定给定行上始终存在所需数量的项目,并尝试访问索引13中列表中的项目。但是,数据文件中必须至少有一行不是case,这就是你的代码崩溃的原因。因此,在尝试访问列表中的给定索引之前,最好检查列表的长度。
即,我将该行拆分为"部分",然后在尝试访问它之前检查其长度。
答案 1 :(得分:0)
split()whitout任何分隔符信息,对空格进行拆分:
"1 2 3".split() returns ["1","2","3"]
因此,请务必检查您使用的分隔符。 Look for str.split.
另请注意,列表由字符串组成,而不是数字值。