鱼C论坛

 找回密码
 立即注册
查看: 2754|回复: 9

求问这是怎么回事?

[复制链接]
发表于 2017-10-23 08:42:41 | 显示全部楼层 |阅读模式

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

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

x
#------将文件分段保存-----#
boy = []
girl = []
count = 1
f = open('C:/Users/asus/Desktop/record.txt')
for each_line in f:
    (role, line_spoken) = each_line.split(':', 1)
    if role == '小甲鱼':
        boy.append(line_spoken)
    if role == '小客服':
        girl.append(line_spoken)
    else:
        if each_line[:6] ==  '======':
            boy_file_name = 'boy' + str(count) + '.txt'
            girl_file_name = 'girl' + str(count) + '.txt'
            boy_file = open(boy_file_name)
            girl_file = open(girl_file_name)
            boy_file.writelines(boy)
            girl_file.writelines(girl)
            boy_file.close
            girl_file.close
            boy = []
            girl = []
            count += 1
            
        
        

程序运行之后出现:
(role, line_spoken) = each_line.split(':', 1)
ValueError: not enough values to unpack (expected 2, got 1)
求问各位大佬这是怎么回事?

record.txt

1.1 KB, 下载次数: 2

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-23 09:17:52 | 显示全部楼层
我朋友之前也有类似的错误,应该是你的文本文件--txt有问题,
你打开我给你的这段文件试试,下面是我帮朋友运行的代码:
f=open('record.txt','r')
boy=[]
girl=[]
count=1

for each_line in f:
    if each_line[:6] != '======':
        (role,talk) = each_line.split(':',1)   #楼主出错的肯定是这里
        if role == '小甲鱼':
            boy.append(talk)
print(boy)
f.close()


界面打印出来的是:
['咦??\n', '。。。。。。\n', '然后呢?\n', '呃。。。。。。你真牛!\n', '下次有人想调戏你我不阻止~\n', '哦?\n', '哈哈哈,我看到丫,我还发微博了呢~\n', '哟西~\n', 'T_T\n', '哦?什么事?\n', '哪里的?\n', '那正常,哪家公司?\n', '哦\n', '啊,你说什么?我在外边呢,这里好吵吖。。。。。。\n']

然后楼主在把你接下来的代码填上去就能形成完整的代码了,楼主记得下载我的文档试试呐~~~

最后希望楼主能采纳我的意见,你的鼓励是我最大的支持!!!

http://bbs.fishc.com/forum.php?m ... id=97759#pid3046557

上面这个我一前答的,已经解决问题了

record.zip

710 Bytes, 下载次数: 3

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

使用道具 举报

发表于 2017-10-23 09:31:18 | 显示全部楼层
出错提示ValueError: not enough values to unpack (expected 2, got 1)
出错提示是(role, line_spoken) = each_line.split(':', 1)这句有错
出错后看一下each_line是什么,能否执行split(':',1),能否赋值给role,line_spoken
然后你的问题应该能得到解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 09:57:07 | 显示全部楼层
这句提示是unpack之后的赋值出错了,提示你unpack的元素个数只有一个,但是按语法来看split之后是有两个部分的,因此错误可能在于你这行文本不含有冒号,因此无法分割出来。你查看下你的文本内容看看。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 17:39:00 | 显示全部楼层
hustlin 发表于 2017-10-23 09:57
这句提示是unpack之后的赋值出错了,提示你unpack的元素个数只有一个,但是按语法来看split之后是有两个部 ...

我的文本里面是有冒号,但是还是不行。该成小甲鱼的那种写法就可以
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-23 17:53:54 | 显示全部楼层
你看看文档里的冒号和代码里的冒号是一个吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-23 19:53:35 | 显示全部楼层
新手·ing 发表于 2017-10-23 17:53
你看看文档里的冒号和代码里的冒号是一个吗

是一个的 为了防止不一样 我都从文本直接复制冒号了,但是还是不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 09:07:38 | 显示全部楼层
冒号,等号都要从文档里复制,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-24 10:04:15 | 显示全部楼层
阿撩 发表于 2017-10-23 17:39
我的文本里面是有冒号,但是还是不行。该成小甲鱼的那种写法就可以

那就比较奇怪了啊,是不是用的中文冒号或者其他编码的冒号?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-24 10:14:51 | 显示全部楼层
hustlin 发表于 2017-10-24 10:04
那就比较奇怪了啊,是不是用的中文冒号或者其他编码的冒号?

emmmm 我知道了 因为如果像我那样写的话 文本里会遇到======这个分隔符,split没办法分隔,像小甲鱼那样写是在====这个分隔符那里进行判断 谢谢了~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 10:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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