Arthur_Lv 发表于 2021-8-3 20:41:11

零基础学习python-record问题

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-3 21:29:52

值给少了,他要的是两个值,但是你只给了一个。下面的错误提示有说明

大马强 发表于 2021-8-3 21:40:52

说明你的 each_line 中没有能 字符 “:”

大马强 发表于 2021-8-3 21:43:56

打比方说
a = "asd"
(x, y) = a.split(":", 1)

向上面这样就会报错
因为你只能返回一个数,但你却用两个变量来接受
如果你是要其中的某一个值,用下标好点
x = a.split(":", 1)# #

Arthur_Lv 发表于 2021-8-4 09:56:41

大马强 发表于 2021-8-3 21:40
说明你的 each_line 中没有能 字符 “:”

可是record文件里确实是有“:”符号,而且全都是英文的,但是还是报错{:5_100:},而且代码和视频上的都一样{:5_100:}

Arthur_Lv 发表于 2021-8-4 09:57:31

深谙流年 发表于 2021-8-3 21:29
值给少了,他要的是两个值,但是你只给了一个。下面的错误提示有说明

但是每一行上都是有“:“符号的啊

大马强 发表于 2021-8-4 10:26:27

Arthur_Lv 发表于 2021-8-4 09:57
但是每一行上都是有“:“符号的啊

会不会是是中文的":"

大马强 发表于 2021-8-4 10:51:59

中文的:符号
英文的:符号
是不一样的,你再改改代码,换成中文的试试,从上面可以看出

Arthur_Lv 发表于 2021-8-4 16:18:29

大马强 发表于 2021-8-4 10:51
中文的:符号
英文的:符号
是不一样的,你再改改代码,换成中文的试试,从上面可以看出

试过了
用的都是英文的:
但是运行的时候还是报错

大马强 发表于 2021-8-4 18:11:02

你这个是作业对吧,我去看看

Arthur_Lv 发表于 2021-8-5 08:33:28

大马强 发表于 2021-8-4 18:11
你这个是作业对吧,我去看看

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

先谢谢大佬了!

大马强 发表于 2021-8-5 09:02:37

Arthur_Lv 发表于 2021-8-5 08:33
不是作业,是视频里的例题,《零基础学习python》的P30

先谢谢大佬了!

能发下你的完整代码吗?

Arthur_Lv 发表于 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()

大马强 发表于 2021-8-5 09:07:26

看了一下视频,感觉你的each_line 应该是“==================”
要不你在你分割前面加上print(each_line)看看,each_line是什么

Arthur_Lv 发表于 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()

Arthur_Lv 发表于 2021-8-5 09:17:49

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

好办法
hhhh这一次好像可以了,现在已经成功了,谢谢大佬!
页: [1]
查看完整版本: 零基础学习python-record问题