【已解决】python3.8字符串split分割方法怎么报错?
本帖最后由 世界上只有dog雄 于 2020-2-7 22:19 编辑我是按照小甲鱼教程学习的,按照他代码打完后,他的可以运行,我的为什么不能运行呢?新手不知道怎么查这个错误。请各位舞友帮忙一下!谢谢!他可能用的是3.5之下的版本。
代码是:for each_line in f:
#对获取的这一行进行怕判断
if each_line[:6] != '=====': #判断前六个是否等于'== '
#如果不是等号的我们这里进行字符串分割操作
##接下里可以使用字符串方法split(sep=None,maxsplit=-1)来进行分割操作。
(role,line_spoken) = each_line.split(':',1)
#判断role是谁说的话,如果是小甲鱼,就放到boy列表里
if role == '小甲鱼':
boy.append(line_spoken)
#判断role如果是小客服,就放到girl列表里
if role == '小客服':
girl.append(line_spoken)
报错为:
line 29, in <module>
(role,line_spoken) = each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1)
完整代码:
f = open('d:/abcd.txt')
##接下来就要把想要的内容存放在一个单独的列表里。比如定义一个列表存放小甲鱼的对话,在定义一个列表存放小客服的对话
#存放小甲鱼的对话
boy = []
#存放小客服
girl = []
###需要一个计算器
count = 1
#
#每次获取他的一行
for each_line in f:
#对获取的这一行进行怕判断
if each_line[:6] != '======': #判断前六个是否等于'== '
#如果不是等号的我们这里进行字符串分割操作
##接下里可以使用字符串方法split(sep=None,maxsplit=-1)来进行分割操作。
(role,line_spoken) = each_line.split(':',1)
#判断role是谁说的话,如果是小甲鱼,就放到boy列表里
if role == '小甲鱼':
boy.append(line_spoken)
#判断role如果是小客服,就放到girl列表里
if role == '小客服':
girl.append(line_spoken)
"""
role:代表角色,比如小甲鱼
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和girl列表里了
#如果要把一个列表里有很多字符串利用序列的方式写入文件。那么该用哪个函数?.writelines(sep)正好符合条件
boy_file.writelines(boy)
girl_file.writelines(girl)
#要记得把文件关闭,不然就是没保存的状态
boy_file.close()
girl_file.close()
#接下里还需要对列表初始化,和计数的加1
boy = []
gril = []
count += 1
"""
如果是等号的话进行文件的分别保存操作。就是当遇到'======'的时候就需要分别保存了。
"""
f.close()
附件是读取的文件:
本帖最后由 德古拉伯 于 2020-2-7 21:24 编辑
你没发现判断那里少了一个=吗?
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) 请问出错的时候的each_line的值是什么? 能不能截图29行的代码 解包的时候错了 each_line.split(':',1)返回一个值,你用俩变量接收 德古拉伯 发表于 2020-2-7 21:17
你没发现判断那里少了一个=吗?
for each_line in f :
if each_line[:6] ! ...
改了还一样的报错 namedlxd 发表于 2020-2-7 21:29
解包的时候错了 each_line.split(':',1)返回一个值,你用俩变量接收
小甲鱼视频是这样教的,所以我就有点犯难 luanshils 发表于 2020-2-7 21:22
能不能截图29行的代码
我把完整代码贴上啦 读取那个文件的内容也发一下 https://blog.csdn.net/Saltwater_Room/article/details/99869184
善用百度
BTW: !=是不等于 并没少=
BBTW: python 读文件尤其注意编码
页:
[1]
2