鱼C论坛

 找回密码
 立即注册
查看: 1318|回复: 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是什么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-3 21:29:52 | 显示全部楼层
值给少了,他要的是两个值,但是你只给了一个。下面的错误提示有说明
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 21:40:52 | 显示全部楼层
说明你的 each_line 中没有能 字符 “:”
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-3 21:43:56 | 显示全部楼层
打比方说
  1. a = "asd"
  2. (x, y) = a.split(":", 1)
复制代码

向上面这样就会报错
因为你只能返回一个数,但你却用两个变量来接受
如果你是要其中的某一个值,用下标好点
  1. x = a.split(":", 1)[0]  # [1]#
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

可是record文件里确实是有“:”符号,而且全都是英文的,但是还是报错,而且代码和视频上的都一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

但是每一行上都是有“:“符号的啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

会不会是是中文的":"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 10:51:59 | 显示全部楼层
中文的:符号
英文的:符号
是不一样的,你再改改代码,换成中文的试试,从上面可以看出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

试过了
用的都是英文的:
但是运行的时候还是报错
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-8-4 18:11:02 | 显示全部楼层
你这个是作业对吧,我去看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

先谢谢大佬了!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

先谢谢大佬了!

能发下你的完整代码吗?
小甲鱼最新课程 -> https://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()
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

  2. boy = []
  3. girl = []
  4. count = 1

  5. for each_line in f:
  6.     if each_line[:6] != '=======':
  7.         (roal,line_spoken) = each_line.split(':',1)
  8.         if roal == '小甲鱼':
  9.             boy.append(line_spoken)
  10.         if roal == '小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_name_boy = 'boy' + str(count) + '.txt'
  14.         file_name_girl = 'girl' + str(count) + '.txt'

  15.         boy_file = open(file_name_boy,'w')
  16.         girl_file = open(file_name_girl,'w')

  17.         boy_file.wirtelines(boy)
  18.         girl_file.wirtelins(girl)

  19.         boy_file.close()
  20.         girl_file.close()

  21.         boy = []
  22.         girl = []
  23.         count += 1


  24. file_name_boy = 'boy' + str(count) + '.txt'
  25. file_name_girl = 'girl' + str(count) + '.txt'

  26. boy_file = open(file_name_boy,'w')
  27. girl_file = open(file_name_girl,'w')

  28. boy_file.wirtelines(boy)
  29. girl_file.wirtelins(girl)

  30. boy_file.close()
  31. girl_file.close()


  32. f.close()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

好办法
hhhh这一次好像可以了,现在已经成功了,谢谢大佬!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-20 20:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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