Python ValueError:没有足够的值来解包。为什么?
我正在从一个网站学习文件管理,我试着执行某个脚本,但效果不太好 它不断在以下行返回此错误:Python ValueError:没有足够的值来解包。为什么?,python,file,pickle,Python,File,Pickle,我正在从一个网站学习文件管理,我试着执行某个脚本,但效果不太好 它不断在以下行返回此错误:city,day,time=line.split() ValueError:没有足够的值来解包(至少应为2,得到0) 我正在尝试按字母顺序排列城市及其时区的列表,文本文件有以下几行: Salt lake city Sun 09:52 San Francisco Sun 00:52 Amsterdam Sun 08:52 Denver Sun 01:52 San Salvador Sun 01:52 Detr
city,day,time=line.split()
ValueError:没有足够的值来解包(至少应为2,得到0)
我正在尝试按字母顺序排列城市及其时区的列表,文本文件有以下几行:
Salt lake city Sun 09:52
San Francisco Sun 00:52
Amsterdam Sun 08:52
Denver Sun 01:52
San Salvador Sun 01:52
Detroit Sun 02:52
代码如下:
import pickle
lines = open("cities_and_times.txt").readlines()
lines.sort()
cities = []
for line in lines:
*city, day, time = line.split()
hours, minutes = time.split(":")
cities.append((" ".join(city), day, (int(hours), int(minutes)) ))
f_new = open("cities_and_times.pkl", "bw")
pickle.dump(cities, f_new)
print(cities)
您需要一个if条件,该条件允许您跳过空行。比如:
if not line:
continue
# Or do this
if not line:
pass
else:
*city, day, time = line.split()
提示:当您有一个空行时会发生什么?您可以使用
跳过空行,如果没有行:continue
。顺便说一句,你有一个缩进问题:cities.append
行后面的内容不应该在for
循环中。一个空行,怎么做?在文本文件上?没有,但行与行之间有空格。@Burhan,你是对的。我确实有空白,你能为引起错误的迭代打印line
的值吗?现在可以了。你是对的,我在文件末尾有空格。你的最后一行:应该是。。。对不起,对于那个键入:“djje,如果空白行只在文件的末尾,那么您可以使用<代码>中断<代码>而不是<代码>继续<代码>,即,<代码>如果不是行:中断< /代码>,因为如果您在数据的末尾没有读取任何行的话,就没有任何意义。