从文本文件中提取列

时间:2015-08-25 12:28:33

标签: python matrix

我有一个包含25列的文本文件(大量的浮点数)。我想提取第14列并将其除以第15列。我无法提取这两列 代码:

with open('sample for north.txt') as infile:
    for line in infile:
        print(line.split()[13])

错误:列表索引超出范围

2 个答案:

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

另请注意,列表由字符串组成,而不是数字值。