【发布时间】:2017-12-05 23:01:57
【问题描述】:
我有这段基本代码只是试图将文件拆分为 4 个列表。 .txt 文件的格式如代码下方所示,每个数字用空格分隔。出现的错误是“ValueError: too many values to unpack (expected 4)”。
file = open("myfreefall.txt","r")
for line in file:
if not line.startswith('#'):
v,a,t,y= line.split(' ')
#v a t y
-0.10 -9.81 0.01 5500.00
-0.20 -9.81 0.02 5500.00
-0.29 -9.81 0.03 5500.00
-0.39 -9.81 0.04 5499.99
-0.49 -9.81 0.05 5499.99
-0.59 -9.81 0.06 5499.99
-0.69 -9.81 0.07 5499.98
-0.78 -9.81 0.08 5499.97
...
但是,我将代码更改为如下所示,以测试预期有多少变量,并且错误更改为“没有足够的值来解包(预期 5,得到 4)”。这没有意义,因为现在代码正在解压缩我想要的四个变量!任何解决方案/指针将不胜感激。
file = open("myfreefall.txt","r")
for line in file:
if not line.startswith('#'):
v,a,t,y,test= line.split(' ')
【问题讨论】:
-
为什么不直接打印 line.split() 看看你得到了多少?
-
它在哪条线上窒息?尝试打印该行以查看。
-
您的文本文件的格式与您的想法不一致。
-
Catch the error 并检查/打印除套件中的相关数据-like
line。这应该让您了解正在发生的事情。