【问题标题】:ValueError: not enough values to unpack (expected 2, got 1) BUT i provide 2 valuesValueError:没有足够的值来解包(预期 2,得到 1)但我提供 2 个值
【发布时间】:2018-05-13 16:53:29
【问题描述】:

我正在处理这段代码,它只是将新数据添加到文本文件中,我让它工作了,但是我再次运行它,它产生了错误“ValueError:没有足够的值来解包(预期 2,得到 1) ”。我知道这个错误意味着什么只是我似乎提供了两个值?我一定是漏掉了什么不对劲的地方?

产生错误的代码:

schoolnames=[]
scores=[]
with open("Cdrive.txt","r")as a_file:
     for x in a_file.readlines():
         data=x.strip()   #Im aware i could just use data, but i use X to try fix the error, of course this didnt work 
         print(data)
         school,score=data.split(",") #The error is produced here
         schoolnames.append(school)
         scores.append(score)

我的文本文件是这样的(文本文件中的每一位数据之间没有行):

sjp,15

切尔默,10

纽霍尔,20

【问题讨论】:

  • 你能缩进你的代码吗?
  • 听起来您的文件中某处有一个空行。
  • 当我使用您提供的那三行代码时,您的代码运行良好。很可能您的文本文件中某处有一个空行。尝试打印循环索引和数据,以在出现错误之前跟踪您所在的行。

标签: python for-loop text-files


【解决方案1】:

你可能有空行,你可以让它工作只需添加一个条件检查:

if data 如果您在空白行上应用 strip() 将是错误的。您可以检查剥离行中是否有逗号

 for x in a_file.readlines():
     data=x.strip()
     if data and "," in data:  
         school,score=data.split(",")

【讨论】:

  • 是的,我有一个空行。永远不会检查,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 2018-04-21
  • 1970-01-01
  • 2023-03-20
  • 2017-09-14
  • 1970-01-01
  • 2019-01-05
相关资源
最近更新 更多