鱼C论坛

 找回密码
 立即注册
查看: 1877|回复: 16

关于29讲 文件:一个任务 ValueError:没有足够的值可解包 求解

[复制链接]
发表于 2020-3-4 08:53:49 | 显示全部楼层 |阅读模式

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

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

x
我参考29讲视频中所讲的代码写了一遍了,运行出现:
Traceback (most recent call last):
  File "C:\Users\Nan\Desktop\python学习\文本.py", line 9, in <module>
    (role,line_spoken) = each_line.split('!',1)
ValueError: not enough values to unpack (expected 2, got 1)

我百度上说可能是换行符的问题,然后我把文本的自动换行去掉后,再运行还是显示这个错误,有大佬能解答下嘛,多谢了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-4 08:56:10 | 显示全部楼层
代码发全,且用代码格式发!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 09:00:20 | 显示全部楼层
f = open('abc.txt',encoding='UTF-8')

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.writelines(girl)

        boy_file.close()
        girl_file.close()

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

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

使用道具 举报

 楼主| 发表于 2020-3-4 09:01:13 | 显示全部楼层

你好,代码我发到下面去了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 09:08:30 | 显示全部楼层
a2658065498 发表于 2020-3-4 09:01
你好,代码我发到下面去了


那啥,对话有没?谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 09:10:18 | 显示全部楼层
qiuyouzhi 发表于 2020-3-4 09:08
那啥,对话有没?谢谢

客服!小南,今天有客户问你有没有女朋友?
小南!咦?????
客服!:我跟她说你有女朋友了!
小南!:。。。。。。
客服!:她让你分手后考虑下她!然后我说:''您要买个优盘,我就帮您留一下~'
小南!:然后呢
客服!:她买了两个,说发一个货就好~
小南!:呃。。。。牛逼!
客服!:那是,不看下是谁
小南!:下次有人想调戏你我不阻止~
客服!:滚!
===========================================================
客服!:小甲鱼,有个好评很好笑
小南!: 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
客服!:然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
小南!:诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
客服!:宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
小南!:侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。
客服愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
小南!:将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。
==========================================================
客服!:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。亲贤臣,远小人,此先汉所以兴隆也
小南!:亲小人,远贤臣,此后汉所以倾颓也。
客服!:先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
小南!:臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
客服!:先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
小南!:后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
客服!:先帝知臣谨慎,故临崩寄臣以大事也。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 09:11:17 | 显示全部楼层
qiuyouzhi 发表于 2020-3-4 09:08
那啥,对话有没?谢谢

一开始我以为是冒号的原因,然后我就添加了感叹号 用感叹号来作为分割的线
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 09:11:52 | 显示全部楼层
a2658065498 发表于 2020-3-4 09:10
客服!小南,今天有客户问你有没有女朋友?
小南!咦?????
客服!:我跟她说你有女朋友了!

将文本内容改为:
客服!小南,今天有客户问你有没有女朋友?
小南!咦?????
客服!:我跟她说你有女朋友了!
小南!:。。。。。。
客服!:她让你分手后考虑下她!然后我说:''您要买个优盘,我就帮您留一下~'
小南!:然后呢
客服!:她买了两个,说发一个货就好~
小南!:呃。。。。牛逼!
客服!:那是,不看下是谁
小南!:下次有人想调戏你我不阻止~
客服!:滚!
===========================================================
客服!:小甲鱼,有个好评很好笑
小南!: 先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。
客服!:然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。
小南!:诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。
客服!:宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。
小南!:侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。
客服!:愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。
小南!:将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。
==========================================================
客服!:愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。亲贤臣,远小人,此先汉所以兴隆也
小南!:亲小人,远贤臣,此后汉所以倾颓也。
客服!:先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。
小南!:臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
客服!:先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
小南!:后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
客服!:先帝知臣谨慎,故临崩寄臣以大事也。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 09:17:16 | 显示全部楼层
不是去掉自动换行,是把文件的所有内容放进一行里
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 09:25:57 | 显示全部楼层
zltzlt 发表于 2020-3-4 09:11
将文本内容改为:

这里面是修改了什么呀??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 09:26:58 | 显示全部楼层
qiuyouzhi 发表于 2020-3-4 09:17
不是去掉自动换行,是把文件的所有内容放进一行里

不分行的意思嘛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 09:27:28 | 显示全部楼层

嗯嗯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 09:38:17 | 显示全部楼层
a2658065498 发表于 2020-3-4 09:25
这里面是修改了什么呀??

第 19 行改了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 10:56:33 | 显示全部楼层
      代码看上去没有什么问题,现在唯一有问题的地方,可能是文件中的空行,这个代码要求每一行要么必须有至少一个 '!' 存在,要么行首至少有 6 个 '#' 字符,不允许有第三种行存在,检查一下文件开头、结尾,看看是不是有空行存在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 16:16:53 | 显示全部楼层
jackz007 发表于 2020-3-4 10:56
代码看上去没有什么问题,现在唯一有问题的地方,可能是文件中的空行,这个代码要求每一行要么必须有 ...

你好,我跟楼主差不多的问题,我看了文件,也没有其他的行,但是还是会报错,说
Traceback (most recent call last):
  File "D:\python\030,文件的分割\test_1.py", line 9, in <module>
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
这是怎么回事啊,求大佬指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 17:05:23 | 显示全部楼层
本帖最后由 jackz007 于 2020-3-8 17:07 编辑
Healit 发表于 2020-3-8 16:16
你好,我跟楼主差不多的问题,我看了文件,也没有其他的行,但是还是会报错,说
这是怎么回事啊,求大佬 ...


    如果没有空行,那就必须满足下面的两个条件:
1、分隔行的头 6 个字符必须是连续 6 个 '#' 字符;
2、正文行必须得有一个西文的冒号 ':' 字符存在;
     每一行文本都必须能够归入上面 2 中情况中的一种,你好好落实一下自己的文本文件内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-8 17:11:26 | 显示全部楼层
jackz007 发表于 2020-3-8 17:05
如果没有空行,那就必须满足下面的两个条件:
1、分隔行的头 6 个字符必须是连续 6 个 '#' 字符; ...

我明白了,,,应该是英文字符下的冒号,哇塞!这下终于对了
谢谢你哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-25 04:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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