python - 从文件中读取几列

时间:2012-10-23 13:37:54

标签: python python-2.7

这是this question的衍生物。在那一个中​​,以下行出现在python脚本中:

c1,c2 = [float(x) for x in line.split()] #convert line into 2 floats and unpack

读取带有两列的数据文件时。

现在,我的真实数据文件有31列,我需要使用第28列和第31列而不是第1列和第2列。当我尝试升级该行时最简单(也是最丑陋)的方法: / p>

c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27,c28,c29,c30,c31 = [float(x) for x in line.split()]

我收到错误:

ValueError: too many values to unpack

如何正确读取文件中的所有列?

2 个答案:

答案 0 :(得分:2)

另一种方法:

cols = [float(x) for x in line.split()]
c28, c31 = cols[27], cols[30]

因此,整体设置看起来像:

with open('<file name here>') as source_file:
    for line in source_file:
        cols = [float(x) for x in line.split()]
        c28, c31 = cols[27], cols[30]

答案 1 :(得分:1)

cols = [float(x) for x in line.split()]
for i in len(cols):
    print i, cols[i]

没有必要实例化N个变量,只需使用读取文件时的数组

这种情况下的for循环可以帮助您查看实际拥有的值