这是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
如何正确读取文件中的所有列?
答案 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循环可以帮助您查看实际拥有的值