Python中出现ValueError: not enough values to unpack (expected 2, got 1)的原因及问题解决方法

Python中出现ValueError: not enough values to unpack (expected 2, got 1)的原因及问题解决方法

一、问题描述:

import pickle
f = open('record1.txt','r')
girl = []
boy = []
count = 0
#content = f.readlines()
for eachline in f:
    if  '=========' not in eachline:
        (role, spoken) = eachline.split(':',1)

运行报错:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\python学习\lianxi\test30-1\pickle-file.py", line 10, in <module>
    (role, spoken) = eachline.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)

错误提示: not enough values to unpack (expected 2, got 1)没有足够的值来解包(需要2,得到1)。程序要求将读取的每行以 : 为界分为两部分,如果找不到 : 就会报错。
二、错误原因:
1、文档record1.txt内容中的‘:’是中文冒号,而程序中“(role, spoken) = eachline.split(’:’,1)”的‘:’是英文冒号,在切片的时候找不到对应的冒号,所以会报错
2、record1.txt文件多了换行符,有些行只有换行符
record1.txt中的内容是从网上直接查找的复制到txt文件的,复制的内容在下面这个链接里面:[小甲鱼教学视频中的record.txt文件内容]
(https://blog.csdn.net/guokaigdg/article/details/82725551),
网页显示内容:
网页显示内容
直接复制到txt文件后如下图:直接复制结果
由于复制完成之后是一个大段,并没有换行,所以手动进行调整如下:调整之后
使用调整之后的文件运行程序,会报错,奖调整之后文件的内容复制到word文件中如下:word内容
发现空行,且空行中只有回车符,这是由于从网页复制过来时,每句话的末尾带有换行符,但在txt文件中并没有体现出来,后续自己又手动回车调整了文件导致的多了只有回车的空行。
从网页复制的内容直接复制到word文件中,如下:在这里插入图片描述
可以发现每行后面都自带换行符
解决办法:将只有换行符的空行删掉,删除方法参考:删除空行
三、避免出现这种错误的方法
在读取每一行时判断是否是空行,是空行则跳过此行,读取下一行
参考链接:record.txt内容
删除多余回车符解决方法

  • 16
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值