1

这是从这个问题衍生而来的。在那一个中​​,以下行出现在python脚本中:

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

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

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

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

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

4

2 回答 2

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]
于 2012-10-23T13:45:43.930 回答
1
cols = [float(x) for x in line.split()]
for i in len(cols):
    print i, cols[i]

无需实例化 N 个变量,只需在读取文件时使用您拥有的数组

在这种情况下,for 循环可以帮助您查看您真正拥有多少值

于 2012-10-23T13:41:23.117 回答