【发布时间】:2016-11-20 13:06:05
【问题描述】:
我正在尝试将以下数据读入我的程序。
Distance (m) Mass (kg)
0.0865 0.1
0.1015 0.15
0.4416 0.9
0.4304 0.95
0.437 1.0
我正在使用以下代码,该代码直接出自本书。
def getData(fileName):
dataFile = open(fileName, 'r')
distances = []
masses = []
discardHeader = dataFile.readline()
for line in dataFile:
d, m = line.split(' ')
distances.append(float(d))
masses.append(float(m))
dataFile.close()
return (masses, distances)
代码始终返回:
ValueError: not enough values to unpack (expected 2, got 1)
我在此处和网络上查看了其他 ValueError 条目,这些条目与将空格分隔的数据读入程序有关,但尚未找到具有基本相似问题的条目。
我猜想问题出在d, m = line.split(' ')这一行。我不确定这叫什么(复合分配?元组分配?),为什么它不起作用(我以前从未尝试过这种方式,但它似乎很合理),或者如何使它起作用。如果有人以这种方式阅读文件,可以对这种情况有所了解,我们将不胜感激。
【问题讨论】:
-
文件中的一行没有空格。
-
尝试在循环开始时添加
print(line)以查看失败的行。 -
我怀疑“最后”行以换行符结尾。
标签: python python-3.x file-io stdin