鱼C论坛

 找回密码
 立即注册
查看: 1315|回复: 4

[已解决]Python入门基础ti'mu

[复制链接]
发表于 2020-2-29 20:49:22 | 显示全部楼层 |阅读模式

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

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

x
按照小甲鱼写的抄的,我的出现了Bug了,刚接触编程,有伙计可以帮一下忙么
应该是split()函数参数出问题了,代码如下():
def save_file(boy,girl,count):
    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()

def split_file(file_name):
    f = open('E:\\test.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:
            save_file(boy,girl,count)

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

    save_file(boy,girl,count)

    f.close()

split_file('E:\\test.txt')

出现error如下:
Traceback (most recent call last):
  File "D:/Technology/Py代码/fengehanshu.py", line 39, in <module>
    split_file('E:\\test.txt')
  File "D:/Technology/Py代码/fengehanshu.py", line 23, in split_file
    (role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
最佳答案
2020-2-29 21:46:06
not enough values to unpack (expected 2, got 1),意思是说需要2个值,但是只有1个,each_line.split(':',1)应该以冒号为界把一句话分成两部分,如果那句话没有冒号就不行了,所以应该是test.txt的内容有问题,这个文件应该是除了等号行以外其他每行都含有至少1个冒号。
顺便说一下,函数split_file有参数,你却没用,而是直接打开文件,不大好,应该改成 f = open(file_name)才算正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-29 21:46:06 | 显示全部楼层    本楼为最佳答案   
not enough values to unpack (expected 2, got 1),意思是说需要2个值,但是只有1个,each_line.split(':',1)应该以冒号为界把一句话分成两部分,如果那句话没有冒号就不行了,所以应该是test.txt的内容有问题,这个文件应该是除了等号行以外其他每行都含有至少1个冒号。
顺便说一下,函数split_file有参数,你却没用,而是直接打开文件,不大好,应该改成 f = open(file_name)才算正确。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-1 03:10:16 | 显示全部楼层
txxcat 发表于 2020-2-29 21:46
not enough values to unpack (expected 2, got 1),意思是说需要2个值,但是只有1个,each_line.split(':' ...

你看看是不是test.txt多了一个空行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 21:38:35 | 显示全部楼层
txxcat 发表于 2020-2-29 21:46
not enough values to unpack (expected 2, got 1),意思是说需要2个值,但是只有1个,each_line.split(':' ...

太强了哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 21:39:08 | 显示全部楼层
txxcat 发表于 2020-3-1 03:10
你看看是不是test.txt多了一个空行。

是楼上那位兄弟分析那样呢,谢谢你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 02:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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