鱼C论坛

 找回密码
 立即注册
查看: 1614|回复: 12

[已解决]小甲鱼029课split问题?

[复制链接]
发表于 2019-9-10 23:37:06 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 ztp 于 2019-9-11 22:02 编辑

如图,我把冒号中文英文都试了一次还是不能运行成功?是什么问题?
  1. count=1
  2. boy=[]
  3. girl=[]

  4. f=(r'C:\\Users\\Thor\\Desktop\\record.txt', encoding = 'UTF-8')

  5. for each_line in f:
  6.     if each_line[:6]!='======':
  7.         (role,line_spoken)=each_line.split(':',1)
  8.         if role =='小甲鱼':
  9.             boy.append(line_spoken)
  10.         if role=='小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_boy_name='boy_'+count+'.txt'
  14.         file_girl_name='girl_'+count+'.txt'

  15.         boy_file=open(file_boy_name,'w')
  16.         girl_file=open(file_girl_name,'w')

  17.         boy_file.writelines(boy)
  18.         girl_file.writelines(girl)
  19.         count=+1
  20.         boy=[]
  21.         girl=[]
  22.         
  23. file_boy_name='boy_'+count+'.txt'
  24. file_girl_name='girl_'+count+'.txt'

  25. boy_file=open(file_boy_name,'w')
  26. girl_file=open(file_girl_name,'w')

  27. boy_file.writelines(boy)
  28. girl_file.writelines(girl)
  29. count=+1
  30. boy=[]
  31. girl=[]

  32. f.close()
复制代码
最佳答案
2019-9-12 10:49:44
好3个地方是错误的。
1》count=+1,应该是count += 1
2》file_boy_name='boy_'+count+'.txt' ,count不是字符串,应该用str转换,写成file_boy_name='boy_'+str(count)+'.txt'
3》最后boy_file和girl_file,没有关闭文件
参考代码如下:
  1. count=1
  2. boy=[]
  3. girl=[]

  4. f=(r'C:\\Users\\Thor\\Desktop\\record.txt', encoding = 'UTF-8')
  5. for each_line in f:
  6.     if each_line[:6]!='======':
  7.         (role,line_spoken)=each_line.split(':',1)
  8.         if role =='小甲鱼':
  9.             boy.append(line_spoken)
  10.         if role=='小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_boy_name='boy_'+str(count)+'.txt'
  14.         file_girl_name='girl_'+str(count)+'.txt'

  15.         boy_file=open(file_boy_name,'w')
  16.         girl_file=open(file_girl_name,'w')

  17.         boy_file.writelines(boy)
  18.         girl_file.writelines(girl)
  19.         count+=1
  20.         boy = []
  21.         girl = []

  22.         
  23. file_boy_name='boy_'+str(count)+'.txt'
  24. file_girl_name='girl_'+str(count)+'.txt'

  25. boy_file=open(file_boy_name,'w',encoding='utf-8')
  26. girl_file=open(file_girl_name,'w',encoding='utf-8')

  27. boy_file.writelines(boy)
  28. girl_file.writelines(girl)

  29. boy_file.close()
  30. girl_file.close()

  31. f.close()
复制代码


文件

文件

问题

问题

代码

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

使用道具 举报

发表于 2019-9-10 23:47:23 | 显示全部楼层
本帖最后由 ba21 于 2019-9-10 23:49 编辑

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

使用道具 举报

发表于 2019-9-11 00:20:16 | 显示全部楼层
       楼主,发帖文本输入框的工具栏中有个标有 "<>" 的按钮,就是专门用来让你贴代码的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 07:02:40 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-9-11 23:49 编辑
  1. count = 1
  2. boy = []
  3. girl = []

  4. f= open(r'C:\\Users\\Thor\\Desktop\\record.txt', encoding = 'UTF-8')   # 该行应打开文件,而不是只给一个字符串,打开中文内容的文件encoding使用 'UTF-8'

  5. for each_line in f:
  6.     if each_line[:6] != '======':
  7.         (role, line_spoken) = each_line.split(':', 1)
  8.         if role == '小甲鱼':            
  9.             boy.append(line_spoken)
  10.         if role == '小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_boy_name = 'boy_' + str(count) + '.txt'
  14.         file_girl_name = 'girl_' + str(count) + '.txt'
  15.         
  16.         boy_file = open(file_boy_name, 'w', encoding = 'UTF-8')
  17.         girl_file = open(file_girl_name, 'w', encoding = 'UTF-8')

  18.         boy_file.writelines(boy)
  19.         girl_file.writelines(girl)
  20.         count += 1

  21.         boy = []
  22.         girl = []

  23.         boy_file.close()
  24.         girl_file.close()

  25. file_boy_name = 'boy_' + str(count) + '.txt'
  26. file_girl_name = 'girl_' + str(count) + '.txt'

  27. boy_file = open(file_boy_name, 'w', encoding = 'UTF-8')
  28. girl_file = open(file_girl_name, 'w', encoding = 'UTF-8')

  29. boy_file.writelines(boy)
  30. girl_file.writelines(girl)

  31. boy_file.close()
  32. girl_file.close()
  33.    
  34. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 13:56:17 | 显示全部楼层
把record.txt也发上来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-11 14:24:23 | 显示全部楼层
count += 1不是count =+ 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 21:56:40 | 显示全部楼层
  1. count=1
  2. boy=[]
  3. girl=[]

  4. f=(r'C:\\Users\\Thor\\Desktop\\record.txt')

  5. for each_line in f:
  6.     if each_line[:6]!='======':
  7.         (role,line_spoken)=each_line.split(':',1)
  8.         if role =='小甲鱼':
  9.             boy.append(line_spoken)
  10.         if role=='小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_boy_name='boy_'+count+'.txt'
  14.         file_girl_name='girl_'+count+'.txt'

  15.         boy_file=open(file_boy_name,'w')
  16.         girl_file=open(file_girl_name,'w')

  17.         boy_file.writelines(boy)
  18.         girl_file.writelines(girl)
  19.         count=+1
  20.         boy=[]
  21.         girl=[]
  22.         
  23. file_boy_name='boy_'+count+'.txt'
  24. file_girl_name='girl_'+count+'.txt'

  25. boy_file=open(file_boy_name,'w')
  26. girl_file=open(file_girl_name,'w')

  27. boy_file.writelines(boy)
  28. girl_file.writelines(girl)
  29. count=+1
  30. boy=[]
  31. girl=[]

  32. f.close()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 21:58:17 | 显示全部楼层

record.txt如下:

小甲鱼:1
小客服:2
小甲鱼:3
===================
小甲鱼:4
小客服:5
小甲鱼:6
==================
小甲鱼:7
小客服:8
小甲鱼:9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-11 21:58:58 | 显示全部楼层
冬雪雪冬 发表于 2019-9-11 13:56
把record.txt也发上来

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

使用道具 举报

 楼主| 发表于 2019-9-11 22:00:10 | 显示全部楼层

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

使用道具 举报

发表于 2019-9-11 23:39:29 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-9-11 23:42 编辑


f= open(r'C:\\Users\\Thor\\Desktop\\record.txt', encoding = 'UTF-8')   # 该行应打开文件,而不是只给一个字符串,打开中文内容的文件encoding使用 'UTF-8'

还有一些语法上的错误,比如count与字符串相加要类型转换,count += 1等,
参照 #4 楼的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-12 09:05:42 | 显示全部楼层

作为附件发上txt文件,由于论坛不支持txt文件,可以改名为rar文件。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-12 10:49:44 | 显示全部楼层    本楼为最佳答案   
好3个地方是错误的。
1》count=+1,应该是count += 1
2》file_boy_name='boy_'+count+'.txt' ,count不是字符串,应该用str转换,写成file_boy_name='boy_'+str(count)+'.txt'
3》最后boy_file和girl_file,没有关闭文件
参考代码如下:
  1. count=1
  2. boy=[]
  3. girl=[]

  4. f=(r'C:\\Users\\Thor\\Desktop\\record.txt', encoding = 'UTF-8')
  5. for each_line in f:
  6.     if each_line[:6]!='======':
  7.         (role,line_spoken)=each_line.split(':',1)
  8.         if role =='小甲鱼':
  9.             boy.append(line_spoken)
  10.         if role=='小客服':
  11.             girl.append(line_spoken)
  12.     else:
  13.         file_boy_name='boy_'+str(count)+'.txt'
  14.         file_girl_name='girl_'+str(count)+'.txt'

  15.         boy_file=open(file_boy_name,'w')
  16.         girl_file=open(file_girl_name,'w')

  17.         boy_file.writelines(boy)
  18.         girl_file.writelines(girl)
  19.         count+=1
  20.         boy = []
  21.         girl = []

  22.         
  23. file_boy_name='boy_'+str(count)+'.txt'
  24. file_girl_name='girl_'+str(count)+'.txt'

  25. boy_file=open(file_boy_name,'w',encoding='utf-8')
  26. girl_file=open(file_girl_name,'w',encoding='utf-8')

  27. boy_file.writelines(boy)
  28. girl_file.writelines(girl)

  29. boy_file.close()
  30. girl_file.close()

  31. f.close()
复制代码


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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 09:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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