求助~
这是在mac系统下,没看出什么问题f=open('/Users/shuoguo/Desktop/xrz/text3.txt')
xrz=[]
xry=[]
cound=1
for each_line in f:
if each_line[:6]!='======':
(role,line_spoken)=each_line.split(':',1)
if role=='徐睿泽':
xrz.append(line_spoken)
if role=='徐睿阳':
xry.append(line_spoken)
else:
file_name_xrz='xrz_'+str(cound)+'.txt'
file_name_xry='xry_'+str(cound)+'.txt'
xrz_file=open('/Users/shuoguo/Desktop/xrz/'+file_name_xrz,'w')
xry_file=open('/Users/shuoguo/Desktop/xrz/xry'+file_name_xry,'w')
xrz_file.writelines(xrz)
xry_file.writelines(xry)
xrz=[]
xry=[]
cound+=1
报错:Traceback (most recent call last):
File "/Users/shuoguo/Desktop/ze/python/文件(2).py", line 7, in <module>
(role,line_spoken)=each_line.split(':',1)
ValueError: not enough values to unpack (expected 2, got 1) 是不是文件里面有空行?
如果有,删掉 这个问题论坛很多人都提问过。
基本上就两种情况:
第一种,文件中的冒号和程序中split用的冒号不一致,有中文冒号,有英文冒号
第二种,文件中有多余的空行。
根据这两个方向自查一下,一般就能解决问题了 一会我去看看 本帖最后由 Twilight6 于 2020-5-18 17:21 编辑
这样试试看~
f = open('/Users/shuoguo/Desktop/xrz/text3.txt')
xrz = []
xry = []
cound = 1
for each_line in f:
if each_line[:6] != '======':
if ':' not in each_line:
continue
(role, line_spoken) = each_line.split(':', 1)
if role == '徐睿泽':
xrz.append(line_spoken)
if role == '徐睿阳':
xry.append(line_spoken)
else:
file_name_xrz = 'xrz_' + str(cound) + '.txt'
file_name_xry = 'xry_' + str(cound) + '.txt'
xrz_file = open('/Users/shuoguo/Desktop/xrz/' + file_name_xrz, 'w')
xry_file = open('/Users/shuoguo/Desktop/xrz/xry' + file_name_xry, 'w')
xrz_file.writelines(xrz)
xry_file.writelines(xry)
xrz = []
xry = []
cound += 1 Twilight6 发表于 2020-5-18 17:17
这样试试看~
老兄能告诉我你改了啥吗,避免下次还烦这种错误 Twilight6 发表于 2020-5-18 17:17
这样试试看~
你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了 sunrise085 发表于 2020-5-18 17:19
你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了
对哦! 我改改 谢谢提醒 sunrise085 发表于 2020-5-18 17:19
你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了
这样可吗{:10_287:} pyrhon萌新# 发表于 2020-5-18 17:19
老兄能告诉我你改了啥吗,避免下次还烦这种错误
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?
Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?
你可能理解错我的意思了,我想问你,你改的地方在哪,为什么 没有反问、讽刺的意思 pyrhon萌新# 发表于 2020-5-18 17:24
你可能理解错我的意思了,我想问你,你改的地方在哪,为什么
你不会自己看? Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?
我没加好友权限.... Twilight6 发表于 2020-5-18 17:21
这样可吗
你这样修改,的确能让程序不报这个错误。也能够很好的剔除空白行
但是若他的程序真的是因为冒号混用导致的,那你的程序会把一些对话滤掉的。
小甲鱼:这是第一行
客服:这是第二行
小甲鱼:这是第三行
客服:这是第四行
上面是冒号混用的txt,若用你的程序,那么第一行和第四行就消失了。 Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?
哦,我看到改的地方了,谢C pyrhon萌新# 发表于 2020-5-18 17:27
我没加好友权限....
这和好友权限有啥关系? qiuyouzhi 发表于 2020-5-18 17:29
这和好友权限有啥关系?
他申请我了,为了避免误解,只能在这声明下~ pyrhon萌新# 发表于 2020-5-18 17:30
他申请我了,为了避免误解,只能在这声明下~
抱歉 ,的确是我的错{:10_245:}我以为你在怼我了,对不起{:10_285:}
if each_line[:6] != '======':
if ':' not in each_line:
continue
我多加了这段代码,以免你这个地方:
(role, line_spoken) = each_line.split(':', 1)
找不到':'符号导致报错的 pyrhon萌新# 发表于 2020-5-18 17:30
他申请我了,为了避免误解,只能在这声明下~
哦,好吧
那你看看文件中有没有空行?
页:
[1]
2