鱼C论坛

 找回密码
 立即注册
查看: 1031|回复: 6

[已解决]关于文件一个任务的问题

[复制链接]
发表于 2020-5-31 10:04:26 | 显示全部楼层 |阅读模式

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

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

x
请问在文件分割保存成Boy123,girl123的任务中,出现以下错误,要如何解决呢?谢谢。
ValueError: too many values to unpack (expected 2)
最佳答案
2020-6-2 21:45:32
if each_line[:6]!='======':
少了个等号,所以如果这一行是============
也会进入if语句
没找到  :
所以split后只有一个元素
而变量名有两个,就回报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-31 10:05:57 | 显示全部楼层
1,删除文件中所有的空行
2,发代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-31 10:31:29 | 显示全部楼层
只发一条不完整的错误信息是没用的,只能知道你某个地方的参数错误,这可能是一个逗号的问题,也可能是其他方面,所以就算不放代码也要放上完整错误信息才能解决问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-2 08:59:36 | 显示全部楼层
完整错误信息如下:
Traceback (most recent call last):
  File "D:\PYTHON\python课后练习\28文件\test1.py", line 7, in <module>
    (role,line_spoken)=each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)


完整代码如下:

f=open('D:\\PYTHON\\python课后练习\\28文件\\record.txt')
boy=[]
girl=[]
count=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(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.writelines(boy)
        girl_file.writelines(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.writelines(boy)
girl_file.writelines(girl)

boy_file.close()
girl_file.close()

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

使用道具 举报

发表于 2020-6-2 21:45:32 | 显示全部楼层    本楼为最佳答案   
if each_line[:6]!='======':
少了个等号,所以如果这一行是============
也会进入if语句
没找到  :
所以split后只有一个元素
而变量名有两个,就回报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 07:39:35 | 显示全部楼层
f=open('D:\\PYTHON\\python课后练习\\28文件\\record.txt')
boy=[]
girl=[]
count=1
for each_line in f:
    if each_line[:6]!='=====':
        if each[:4]=='小甲鱼':
            boy.append(line_spoken)
        if each[:4]=='小客服':
            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.writelines(boy)
        girl_file.writelines(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.writelines(boy)
girl_file.writelines(girl)

boy_file.close()
girl_file.close()

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

使用道具 举报

 楼主| 发表于 2020-6-4 18:34:05 | 显示全部楼层
明白啦,谢谢大家!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 21:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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