鱼C论坛

 找回密码
 立即注册
查看: 1579|回复: 8

[已解决]困扰很久的

[复制链接]
发表于 2017-11-1 19:13:30 | 显示全部楼层 |阅读模式

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

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

x
boy=[]
girl=[]
count=1
f=open('D:\软件安装\学习\\对话.txt ')
f.read()
for each_line in f:
    if each_line[:6]!='======':
        (role,role_spoken)=each_line.split(':',1)
        if role=='老公':
            boy.append(role_spoken)
        if role=='老婆':
            girl.append(role_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_file.writelines(boy)
        girl_file.writelines(girl)
        boy=[]
        girl=[]
        count+=1
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_file.writelines(boy)
girl_file.writelines(girl)
boy_file.close()
girl_file.close()
f.close







关于小甲鱼上课讲的提取两个人对话的题目:为什么这段代码只能生成两个空文件夹?   
最佳答案
2017-11-2 16:24:18
不知道你的代码是啥。。。所以给个参考的建议
你仔细检查一下你的判断语句,是不是因为在进行分割的时候有的行里没有冒号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-11-1 20:21:50 From FishC Mobile | 显示全部楼层
原txt文件的内容呢?
感觉写的有点冗余
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-1 20:36:59 | 显示全部楼层
BngThea 发表于 2017-11-1 20:21
原txt文件的内容呢?
感觉写的有点冗余

我是从网上模仿小甲鱼百度的三段对话,和课上那个题一样,分别提取三段对话中两个人的对话,然后存储!!
我使用最简单的循环写的,没有用函数封装!
但是每次只能生成两个文件,还是空的!
微信截图_20171101203401.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-1 21:42:27 | 显示全部楼层
lebroncm 发表于 2017-11-1 20:36
我是从网上模仿小甲鱼百度的三段对话,和课上那个题一样,分别提取三段对话中两个人的对话,然后存储!! ...

仔细的调试了一下,发现原来你的命名欺骗了自己,有以下几个问题:
1  f.read()后没有进行赋值,这句相当于没有用
2  for each_line in f: 这一语句的作用提取的并不是想当然的每一行
正确的做法应该是这样的:

  1. f1=open('D:\软件安装\学习\\对话.txt  ')#用f1打开,记得最后关闭用f1.close()
  2. f2 = f1.read()#将数据读取到f2中
  3. f = f2.split()#将f2的数据的每一行转换成一个列表f的每一个元素
  4. for each_line in f:
复制代码


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

使用道具 举报

 楼主| 发表于 2017-11-2 10:22:49 From FishC Mobile | 显示全部楼层
说实话,想放弃这道题了!!
按照这个下来又报错了
原来那个代码在别人电脑就能成功运行!
%E6%88%AA%E5%B1%8F_20171102_102116.jpg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 14:58:00 | 显示全部楼层
lebroncm 发表于 2017-11-2 10:22
说实话,想放弃这道题了!!
按照这个下来又报错了
原来那个代码在别人电脑就能成功运行!

检查冒号,双引号是不是和文件里面的相同
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 15:29:34 From FishC Mobile | 显示全部楼层
检查了   还是特意复制了一次
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-11-2 16:24:18 | 显示全部楼层    本楼为最佳答案   
不知道你的代码是啥。。。所以给个参考的建议
你仔细检查一下你的判断语句,是不是因为在进行分割的时候有的行里没有冒号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-2 18:36:00 | 显示全部楼层
阿撩 发表于 2017-11-2 16:24
不知道你的代码是啥。。。所以给个参考的建议
你仔细检查一下你的判断语句,是不是因为在进行分割的时候有 ...

您的这个回复太感谢了 ,最简单的错误,txt文件出错了。
谢谢谢谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-28 16:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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