鱼C论坛

 找回密码
 立即注册
查看: 1908|回复: 28

求助~

[复制链接]
发表于 2020-5-18 17:13:03 | 显示全部楼层 |阅读模式

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

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

x
这是在mac系统下,没看出什么问题
  1. f=open('/Users/shuoguo/Desktop/xrz/text3.txt')
  2. xrz=[]
  3. xry=[]
  4. cound=1
  5. for each_line in f:
  6.     if each_line[:6]!='======':
  7.         (role,line_spoken)=each_line.split(':',1)
  8.         if role=='徐睿泽':
  9.             xrz.append(line_spoken)
  10.         if role=='徐睿阳':
  11.             xry.append(line_spoken)
  12.             
  13.     else:
  14.         file_name_xrz='xrz_'+str(cound)+'.txt'
  15.         file_name_xry='xry_'+str(cound)+'.txt'
  16.         xrz_file=open('/Users/shuoguo/Desktop/xrz/'+file_name_xrz,'w')
  17.         xry_file=open('/Users/shuoguo/Desktop/xrz/xry'+file_name_xry,'w')
  18.         xrz_file.writelines(xrz)
  19.         xry_file.writelines(xry)
  20.         xrz=[]
  21.         xry=[]
  22.         cound+=1
  23.             
复制代码

报错: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)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-18 17:14:46 | 显示全部楼层
是不是文件里面有空行?
如果有,删掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:15:24 | 显示全部楼层
这个问题论坛很多人都提问过。
基本上就两种情况:
第一种,文件中的冒号和程序中split用的冒号不一致,有中文冒号,有英文冒号
第二种,文件中有多余的空行。
根据这两个方向自查一下,一般就能解决问题了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:16:21 | 显示全部楼层
一会我去看看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:17:21 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-18 17:21 编辑

这样试试看~
  1. f = open('/Users/shuoguo/Desktop/xrz/text3.txt')
  2. xrz = []
  3. xry = []
  4. cound = 1
  5. for each_line in f:
  6.     if each_line[:6] != '======':
  7.         if ':' not in each_line:
  8.             continue
  9.         (role, line_spoken) = each_line.split(':', 1)
  10.         if role == '徐睿泽':
  11.             xrz.append(line_spoken)
  12.         if role == '徐睿阳':
  13.             xry.append(line_spoken)

  14.     else:
  15.         file_name_xrz = 'xrz_' + str(cound) + '.txt'
  16.         file_name_xry = 'xry_' + str(cound) + '.txt'
  17.         xrz_file = open('/Users/shuoguo/Desktop/xrz/' + file_name_xrz, 'w')
  18.         xry_file = open('/Users/shuoguo/Desktop/xrz/xry' + file_name_xry, 'w')
  19.         xrz_file.writelines(xrz)
  20.         xry_file.writelines(xry)
  21.         xrz = []
  22.         xry = []
  23.         cound += 1
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:19:58 | 显示全部楼层

老兄能告诉我你改了啥吗,避免下次还烦这种错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:19:59 | 显示全部楼层

你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:20:41 | 显示全部楼层
sunrise085 发表于 2020-5-18 17:19
你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了

对哦! 我改改 谢谢提醒
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:21:49 | 显示全部楼层
sunrise085 发表于 2020-5-18 17:19
你这个肯定是不行的
文件中以"========"分割,将原文件分割成多个文件
你这样就不会进行分割了

这样可吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:23:30 | 显示全部楼层
pyrhon萌新# 发表于 2020-5-18 17:19
老兄能告诉我你改了啥吗,避免下次还烦这种错误

你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:24:49 | 显示全部楼层
Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?

你可能理解错我的意思了,我想问你,你改的地方在哪,为什么
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:25:20 | 显示全部楼层
没有反问、讽刺的意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:26:08 | 显示全部楼层
pyrhon萌新# 发表于 2020-5-18 17:24
你可能理解错我的意思了,我想问你,你改的地方在哪,为什么

你不会自己看?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:27:51 | 显示全部楼层
Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?

我没加好友权限....
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:28:01 | 显示全部楼层

你这样修改,的确能让程序不报这个错误。也能够很好的剔除空白行
但是若他的程序真的是因为冒号混用导致的,那你的程序会把一些对话滤掉的。
  1. 小甲鱼:这是第一行
  2. 客服:这是第二行
  3. 小甲鱼:这是第三行
  4. 客服:这是第四行
复制代码

上面是冒号混用的txt,若用你的程序,那么第一行和第四行就消失了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:28:59 | 显示全部楼层
Twilight6 发表于 2020-5-18 17:23
你认真看完代码再说没改可?怎么感觉你每次回复都在怼我?

哦,我看到改的地方了,谢C
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:29:12 | 显示全部楼层
pyrhon萌新# 发表于 2020-5-18 17:27
我没加好友权限....

这和好友权限有啥关系?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-18 17:30:16 | 显示全部楼层
qiuyouzhi 发表于 2020-5-18 17:29
这和好友权限有啥关系?

他申请我了,为了避免误解,只能在这声明下~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:31:38 | 显示全部楼层
pyrhon萌新# 发表于 2020-5-18 17:30
他申请我了,为了避免误解,只能在这声明下~

抱歉 ,的确是我的错我以为你在怼我了,对不起
  1. if each_line[:6] != '======':
  2.         if ':' not in each_line:
  3.             continue
复制代码

我多加了这段代码,以免你这个地方:
  1. (role, line_spoken) = each_line.split(':', 1)
复制代码

找不到':'符号导致报错的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-18 17:31:43 | 显示全部楼层
pyrhon萌新# 发表于 2020-5-18 17:30
他申请我了,为了避免误解,只能在这声明下~

哦,好吧
那你看看文件中有没有空行?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-20 00:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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