linkais 发表于 2020-8-29 11:05:34

求助

f = open('F:\\ReadMe.txt')

boy = []
girl = []
court = 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(court) + '.txt'
      file_name_girl = 'girl_' + str(court) + '.txt'
      
      
      boy_file = open(file_name_boy,'w')
      girl_file = open(file_name_girl,'w')

      boy_file.writelines(boy)
      girl_file.writelines(girl)

      boy = []
      girl = []
      court += 1





打了个这个结果出了这个:
Traceback (most recent call last):
File "C:/Users/water/Desktop/easygui/nice.py", line 9, in <module>
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
是啥意思?

sunrise085 发表于 2020-8-29 11:09:17

本帖最后由 sunrise085 于 2020-8-29 11:11 编辑

就是说(role,line_spoken) = each_line.split(':',1)这个切片不成功,没有切出来两部分,而你却将这个切片赋值给两个变量,所以报错了
原因有以下几种可能:
1、你的文本中有多余的空行
2、你的文本中对话的冒号有不是你这里切片使用的冒号的,一定要注意中英文标点符号,不能混用。
3、分割行的前六个字符不是"======",掺杂了其他字符,例如前面有多余的空格等等

估计你的问题很可能是第二种,先查第二种,然后查第一种,最后查第三种

linkais 发表于 2020-8-29 11:18:31

sunrise085 发表于 2020-8-29 11:09
就是说(role,line_spoken) = each_line.split(':',1)这个切片不成功,没有切出来两部分,而你却将这个切片 ...

是第一种错误,已修正,谢谢你。
页: [1]
查看完整版本: 求助