预期 ValueError 2 得到 1 Python
ValueError Expected 2 Got 1 Python
我正在尝试将以下数据读入我的程序。
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)
代码一致returns:
ValueError: not enough values to unpack (expected 2, got 1)
我在此处和网络上查看了其他 ValueError 条目,这些条目与将 space 分隔的数据读入程序有关,但尚未找到具有基本相似问题的条目。
我推测问题出在d, m = line.split(' ')
行。我不确定这叫什么(复合赋值?元组赋值?),为什么它不起作用(我以前从未尝试过这种方式,但看起来很合理),或者如何让它起作用。如果任何以这种方式阅读文件的人可以阐明这种情况,我们将不胜感激。
您可能 运行 进入文件末尾的空白 new line
,拆分时只给出一个项目列表 (['']
)。 (此外,按空格拆分 space 不需要参数,这是默认值)。
if len(line.split()) < 2: continue
在循环的开头应该可以解决。
这叫做拆包。当您有一个可迭代对象(列表、元组或任何支持索引的对象)时,像 x, y = point
这样的语法会获取 point[0], point[1]
元素并将它们分别分配给 x, y
。但是,如果没有 point[0]
或者 point[1]
就会抛出异常
这就是你的情况,很可能是因为你的文件中的某些行在两个值之间缺少 space,所以 line.split(' ')
returns 只有一件事
我正在尝试将以下数据读入我的程序。
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)
代码一致returns:
ValueError: not enough values to unpack (expected 2, got 1)
我在此处和网络上查看了其他 ValueError 条目,这些条目与将 space 分隔的数据读入程序有关,但尚未找到具有基本相似问题的条目。
我推测问题出在d, m = line.split(' ')
行。我不确定这叫什么(复合赋值?元组赋值?),为什么它不起作用(我以前从未尝试过这种方式,但看起来很合理),或者如何让它起作用。如果任何以这种方式阅读文件的人可以阐明这种情况,我们将不胜感激。
您可能 运行 进入文件末尾的空白 new line
,拆分时只给出一个项目列表 (['']
)。 (此外,按空格拆分 space 不需要参数,这是默认值)。
if len(line.split()) < 2: continue
在循环的开头应该可以解决。
这叫做拆包。当您有一个可迭代对象(列表、元组或任何支持索引的对象)时,像 x, y = point
这样的语法会获取 point[0], point[1]
元素并将它们分别分配给 x, y
。但是,如果没有 point[0]
或者 point[1]
就会抛出异常
这就是你的情况,很可能是因为你的文件中的某些行在两个值之间缺少 space,所以 line.split(' ')
returns 只有一件事