liuchao2472 发表于 2016-3-11 20:23:10

关于 not enough values to unpack (expected 2, got 1) 这个的错误

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

这个是代码:
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)

liuchao2472 发表于 2016-3-11 20:24:09

这是森么原因啊,求帮助

冬雪雪冬 发表于 2016-3-11 20:29:18

程序要求将读取的每行以 : 为界分为两部分,如果找不到 : 就会报错。可能是record.txt文件中误写成中文冒号了

liuchao2472 发表于 2016-3-11 20:44:46

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

恩恩 找了好久 就是record.txt 的文件的问题。 多谢啊

小花朵朵sky55 发表于 2016-10-19 22:25:29

我遇到和楼主一样的问题,请问最后楼主是怎么解决的

張宮寶 发表于 2017-4-21 21:34:29

小花朵朵sky55 发表于 2016-10-19 22:25
我遇到和楼主一样的问题,请问最后楼主是怎么解决的

如果檔案中有空白的行也會報錯

holistic杀手 发表于 2017-8-11 00:51:18

我也是一直出现这个问题,但我确实是用中文冒号啊{:10_269:}

银色的色 发表于 2017-8-20 16:07:45

我也是这个报错,f = open('E:/test.txt')
boy =[]
girl =[]
count = 1

for each_line in f :
    if each_line[:6] != '=======':
      #我们这里进行字符串分割操作
      (role,line_spoken) = each_line.split(':',1)
      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.writelinea(girl)

      boy_file.close()
      girl_file.close()
      

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

f.close()

yangbs2009 发表于 2017-8-23 15:58:12

银色的色 发表于 2017-8-20 16:07
我也是这个报错,

问题解决了么,我现在也是这个样子的
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)

进击的红蚂蚁 发表于 2017-10-7 13:20:43

报错+1 ,查不出是什么原因

进击的红蚂蚁 发表于 2017-10-7 13:27:01

liuchao2472 发表于 2016-3-11 20:44
恩恩 找了好久 就是record.txt 的文件的问题。 多谢啊

我直接从文中复制的":",但是还是出错,求指点您是怎么解决的呢?

李小赖 发表于 2017-10-15 16:06:28

一样报错呀{:10_266:},谁能解答下啊{:10_247:}

小木目心 发表于 2017-10-15 21:24:10

李小赖 发表于 2017-10-15 16:06
一样报错呀,谁能解答下啊

加个换行符
each_line = each_line.strip('\n')

luky 发表于 2017-10-25 14:48:13

有问题的同学还要注意下面的代码
【if each_line[:6] != '======':】
其中[:6]是截取一行中的前六个字符,所以你后面的等号也要输出六个
如果你截取的是[:3] 那么代码就变成if each_line[:3] != '===':

outmanlol 发表于 2017-11-15 21:47:46

14楼说到点上了,我就是用的if each_line[:6] != '==='错的。老师给的文件本身没有问题。

q940440521 发表于 2018-1-28 12:50:11

那个‘:’,record.txt里是中文的,所以在你的.py中,也得引用中文的,我之前引用的是英文的,所以一直报错,值不够!

lcb21 发表于 2018-2-13 14:13:55

record.txt 文件里的 : 冒号 和程序的冒号   全角和半角的问题。

廖锦辉 发表于 2018-2-25 23:31:45

q940440521 发表于 2018-1-28 12:50
那个‘:’,record.txt里是中文的,所以在你的.py中,也得引用中文的,我之前引用的是英文的,所以一直报 ...

楼主正解,修改后就成功了

野狼007 发表于 2018-3-2 15:02:14

绝对是TXT文件的问题,打开文件,读取看一看换行符号\n有多少个。(我:\n哦\n\n她:我的手套量了吗\n\n)这个是我的文件读取,冒号后边有换行符,所以执行不了,我从新写了一遍问价内容就解决了。

wqamy 发表于 2018-3-6 11:21:48

方法都试了,还是有错,要疯了
页: [1] 2 3 4
查看完整版本: 关于 not enough values to unpack (expected 2, got 1) 这个的错误