鱼C论坛

 找回密码
 立即注册
查看: 47137|回复: 63

[已解决]关于 not enough values to unpack (expected 2, got 1) 这个的错误

[复制链接]
发表于 2016-3-11 20:23:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大家好, 老是遇到这个错误,问题究竟在哪里啊

这个是代码:
f = open ("f:\\record.txt")

boy=[]
girl=[]
count =1

for each_line in f:
    if each_line[:6] != '=======':
      (role,line_spoken) = each_line.split(':',1)
      print(role,line_spoken)
      if role== '海盗' :
        boy.append(line_spoken)
      if role== '小不点' :
        girl.append(line_spoken)

    else:
        file_name_boy ='boy_' + str(count) + '.txt'
        file_name_girl  = 'girl_' +str(count)  + '.txt'

        boy_file = open (file_name_boy,'w')
        girl_file  = open (file_name_girl,'w')

        boy_file.writelines(boy)
        girl_file.writelines(girl)

        boy_file.close()
        girl_filr.close()

        boy=[]
        girl=[]
        count+=1

f.close()
感觉和视频的一样,结果总是报错

Traceback (most recent call last):
  File "F:/python.save/file.py", line 9, in <module>
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)

最佳答案
2016-3-11 20:29:18
程序要求将读取的每行以 : 为界分为两部分,如果找不到 : 就会报错。可能是record.txt文件中误写成中文冒号了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-3-11 20:24:09 | 显示全部楼层
这是森么原因啊,求帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-3-11 20:29:18 | 显示全部楼层    本楼为最佳答案   
程序要求将读取的每行以 : 为界分为两部分,如果找不到 : 就会报错。可能是record.txt文件中误写成中文冒号了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

 楼主| 发表于 2016-3-11 20:44:46 | 显示全部楼层
冬雪雪冬 发表于 2016-3-11 20:29
程序要求将读取的每行以 : 为界分为两部分,如果找不到 : 就会报错。可能是record.txt文件中误写成中文冒号 ...

恩恩 找了好久 就是record.txt 的文件的问题。 多谢啊  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-19 22:25:29 | 显示全部楼层
我遇到和楼主一样的问题,请问最后楼主是怎么解决的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-21 21:34:29 | 显示全部楼层
小花朵朵sky55 发表于 2016-10-19 22:25
我遇到和楼主一样的问题,请问最后楼主是怎么解决的

如果檔案中有空白的行也會報錯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-11 00:51:18 | 显示全部楼层
我也是一直出现这个问题,但我确实是用中文冒号啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-20 16:07:45 | 显示全部楼层
我也是这个报错,
  1. f = open('E:/test.txt')
  2. boy =[]
  3. girl =[]
  4. count = 1

  5. for each_line in f :
  6.     if each_line[:6] != '=======':
  7.         #我们这里进行字符串分割操作
  8.         (role,line_spoken) = each_line.split(':',1)
  9.         if role == '小甲鱼':
  10.             boy.append(line_spoken)
  11.         if role == '小客服':
  12.             girl.append(line_spoken)
  13.         
  14.     else:
  15.         #文件的分别保存操作
  16.         file_name_boy = 'boy_'+str(count)+'.txt'
  17.         file_name_girl = 'girl_'+str(count)+'.txt'

  18.         boy_file =open(file_name_boy,'w')
  19.         girl_file = open(file_name_girl,'w')

  20.         boy_file.writelines(boy)
  21.         girl_file.writelinea(girl)

  22.         boy_file.close()
  23.         girl_file.close()
  24.         

  25.         boy =[]
  26.         girl =[]
  27.         count +=1

  28. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-23 15:58:12 | 显示全部楼层

问题解决了么,我现在也是这个样子的
Traceback (most recent call last):
  File "D:\study\python\exercise\test_2.py", line 9, in <module>
    (role,words) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-7 13:20:43 | 显示全部楼层
报错+1 ,查不出是什么原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-7 13:27:01 | 显示全部楼层
liuchao2472 发表于 2016-3-11 20:44
恩恩 找了好久 就是record.txt 的文件的问题。 多谢啊

我直接从文中复制的":",但是还是出错,求指点您是怎么解决的呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2017-10-15 16:06:28 | 显示全部楼层
一样报错呀,谁能解答下啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-15 21:24:10 | 显示全部楼层
李小赖 发表于 2017-10-15 16:06
一样报错呀,谁能解答下啊

加个换行符
each_line = each_line.strip('\n')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2017-10-25 14:48:13 | 显示全部楼层
有问题的同学还要注意下面的代码
【if each_line[:6] != '======':】
其中[:6]是截取一行中的前六个字符,所以你后面的等号也要输出六个
如果你截取的是[:3] 那么代码就变成  if each_line[:3] != '===':
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 19 反对 1

使用道具 举报

发表于 2017-11-15 21:47:46 | 显示全部楼层
14楼说到点上了,我就是用的if each_line[:6] != '==='错的。老师给的文件本身没有问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-28 12:50:11 | 显示全部楼层
那个‘:’,record.txt里是中文的,所以在你的.py中,也得引用中文的,我之前引用的是英文的,所以一直报错,值不够!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-13 14:13:55 | 显示全部楼层
record.txt 文件里的 : 冒号 和程序的冒号   全角和半角的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-25 23:31:45 | 显示全部楼层
q940440521 发表于 2018-1-28 12:50
那个‘:’,record.txt里是中文的,所以在你的.py中,也得引用中文的,我之前引用的是英文的,所以一直报 ...

楼主正解,修改后就成功了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-2 15:02:14 | 显示全部楼层
绝对是TXT文件的问题,打开文件,读取看一看换行符号\n有多少个。(我:\n哦\n\n她:我的手套量了吗\n\n)这个是我的文件读取,冒号后边有换行符,所以执行不了,我从新写了一遍问价内容就解决了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-6 11:21:48 | 显示全部楼层
方法都试了,还是有错,要疯了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 1

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-24 09:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表