鱼C论坛

 找回密码
 立即注册
查看: 1157|回复: 15

[已解决]零基础学习python-record问题

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

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

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

x
Traceback (most recent call last):
  File "E:/python学习_小甲鱼/P30_文件读取与保存.py", line 9, in <module>
    (roal,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)



这个错误该怎么解决啊
最佳答案
2021-8-5 09:07:26
看了一下视频,感觉你的each_line 应该是“==================”
要不你在你分割前面加上print(each_line)看看,each_line是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-3 21:29:52 | 显示全部楼层
值给少了,他要的是两个值,但是你只给了一个。下面的错误提示有说明
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 21:40:52 | 显示全部楼层
说明你的 each_line 中没有能 字符 “:”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 21:43:56 | 显示全部楼层
打比方说
a = "asd"
(x, y) = a.split(":", 1)
向上面这样就会报错
因为你只能返回一个数,但你却用两个变量来接受
如果你是要其中的某一个值,用下标好点
x = a.split(":", 1)[0]  # [1]#
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 09:56:41 | 显示全部楼层
大马强 发表于 2021-8-3 21:40
说明你的 each_line 中没有能 字符 “:”

可是record文件里确实是有“:”符号,而且全都是英文的,但是还是报错,而且代码和视频上的都一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 09:57:31 | 显示全部楼层
深谙流年 发表于 2021-8-3 21:29
值给少了,他要的是两个值,但是你只给了一个。下面的错误提示有说明

但是每一行上都是有“:“符号的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 10:26:27 | 显示全部楼层
Arthur_Lv 发表于 2021-8-4 09:57
但是每一行上都是有“:“符号的啊

会不会是是中文的":"
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 10:51:59 | 显示全部楼层
中文的:符号
英文的:符号
是不一样的,你再改改代码,换成中文的试试,从上面可以看出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-4 16:18:29 | 显示全部楼层
大马强 发表于 2021-8-4 10:51
中文的:符号
英文的:符号
是不一样的,你再改改代码,换成中文的试试,从上面可以看出

试过了
用的都是英文的:
但是运行的时候还是报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 18:11:02 | 显示全部楼层
你这个是作业对吧,我去看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-5 08:33:28 | 显示全部楼层
大马强 发表于 2021-8-4 18:11
你这个是作业对吧,我去看看

不是作业,是视频里的例题,《零基础学习python》的P30

先谢谢大佬了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-5 09:02:37 | 显示全部楼层
Arthur_Lv 发表于 2021-8-5 08:33
不是作业,是视频里的例题,《零基础学习python》的P30

先谢谢大佬了!

能发下你的完整代码吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-5 09:07:08 | 显示全部楼层
大马强 发表于 2021-8-5 09:02
能发下你的完整代码吗?

f = open('E://python学习_小甲鱼//record.txt')

boy = []
girl = []
count = 1

for each_line in f:
    if each_line[:6] != '=======':
        (roal,line_spoken) = each_line.split(':',1)
        if roal == '小甲鱼':
            boy.append(line_spoken)
        if roal == '小客服':
            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.wirtelines(boy)
        girl_file.wirtelins(girl)

        boy_file.close()
        girl_file.close()

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


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.wirtelines(boy)
girl_file.wirtelins(girl)

boy_file.close()
girl_file.close()


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

使用道具 举报

发表于 2021-8-5 09:07:26 | 显示全部楼层    本楼为最佳答案   
看了一下视频,感觉你的each_line 应该是“==================”
要不你在你分割前面加上print(each_line)看看,each_line是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-5 09:07:52 | 显示全部楼层
大马强 发表于 2021-8-5 09:02
能发下你的完整代码吗?
f = open('E://python学习_小甲鱼//record.txt')

boy = []
girl = []
count = 1

for each_line in f:
    if each_line[:6] != '=======':
        (roal,line_spoken) = each_line.split(':',1)
        if roal == '小甲鱼':
            boy.append(line_spoken)
        if roal == '小客服':
            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.wirtelines(boy)
        girl_file.wirtelins(girl)

        boy_file.close()
        girl_file.close()

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


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.wirtelines(boy)
girl_file.wirtelins(girl)

boy_file.close()
girl_file.close()


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

使用道具 举报

 楼主| 发表于 2021-8-5 09:17:49 | 显示全部楼层
大马强 发表于 2021-8-5 09:07
看了一下视频,感觉你的each_line 应该是“==================”
要不你在你分割前面加上print(each_line) ...

好办法
hhhh这一次好像可以了,现在已经成功了,谢谢大佬!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-13 17:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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