小甲鱼与客服的对话,代码与解析

源文档:

'这是一段待写入的数小客服:小甲鱼?,今天有?客户问你有没有女朋友?\n小甲鱼:咦???\n小客服:我跟她说你有女朋友了!\n小甲鱼:。。。。。\n小客服:"她让你分手后考虑下她!然后我说您要买个优盘,我就帮您留意下~"\n小甲鱼:然后呢?\n小客服:她买了两个,说发一一个货就好~\n小甲鱼:呃。?。。。。。你真牛!\n小客服:那是,谁让我是鱼C最可爱小客服嘛~\n小甲鱼:下次有人想调戏你我不阻止~\n小客服:滚!!!\n==========================================================\n小客服:小甲鱼,有个好评很好笑哈。\n小甲鱼:哦?\n小客服:"有了小甲鱼,以后妈妈再也不用担心我的学习了~”\n小甲鱼:哈哈哈,我看到丫,我还发微博了呢~\n小客服:嗯嗯,我看了你的微博丫~小甲鱼哟西~\n小客服:那个有条回复"左手拿著小甲魚,右手拿著打火機,哪裡不會點哪裡,?soeasy^...^"\n小甲鱼:T_T\n=============================================================\n小客服:小甲鱼?,今天一?一个会员想找你\n小甲鱼:哦?什么事?\n小客服:他说你一个学生月薪已经超过12k了!?!\n小甲鱼:哪里的?\n小客服:上海的\n小甲鱼:那正常,哪家公司?\n小客服:他没说呀。\n小甲鱼:哦\n小客服:老大,为什么我工资那么低啊???是时候涨张工资了!!!\n小甲鱼:啊,你说什么?我在外边呢,这里好吵吖。。。。。。\n小客服:滚!!!\n

 

代码实现:

 

 1 f=open('record2.txt')
 2 
 3 girl = []
 4 boy = []
 5 count = 1
 6 for each_line in f:
 7     if each_line[:6] != '======':
 8         (role,line_spoken) = each_line.split(':',1)
 9         if role == '小甲鱼':
10             boy.append(line_spoken)
11         else:
12             girl.append(line_spoken)
13     else:
14         file_name_boy = 'boy' + str(count) +'.txt'
15         file_name_girl = 'girl' + str(count) + '.txt'
16         boy_file = open(file_name_boy,'w')
17         girl_file = open(file_name_girl,'w')
18         boy_file.writelines(boy)    #把boy 写入boy_file (boy原本是个【】,后来已经通过上面的 if roel那个循环 吧 ===== 上面小甲鱼的话加到里面)
19         girl_file.writelines(girl)  #这两行代码就是往 14,15行代码的那两个文件写入东西
20          #写完入东西之后该干嘛了呢? 截止到这里 第一行======上面的内容已经保存成boy1.txt和 girl.txt了  接着想要读下面一段话,但是boy 和 girl这两个定义的数组都是上一段的东西 这时候就该把它们清空了
21         boy = []
22         girl = []
23         count += 1

 

然而 文件中只出现了

 

第三段没有出现 这是因为最后一段没有 ====== 程序无法判断 所以要自己笨笨的在加一次操作 (╮(╯▽╰)╭,for循环帮不上忙自己动手)

 1 f=open('record2.txt')
 2 
 3 girl = []
 4 boy = []
 5 count = 1
 6 for each_line in f:
 7     if each_line[:6] != '======':
 8         (role,line_spoken) = each_line.split(':',1)
 9         if role == '小甲鱼':
10             boy.append(line_spoken)
11         else:
12             girl.append(line_spoken)
13     else:
14         file_name_boy = 'boy' + str(count) +'.txt'
15         file_name_girl = 'girl' + str(count) + '.txt'
16         boy_file = open(file_name_boy,'w')
17         girl_file = open(file_name_girl,'w')
18         boy_file.writelines(boy)    #把boy 写入boy_file (boy原本是个【】,后来已经通过上面的 if roel那个循环 吧 ===== 上面小甲鱼的话加到里面)
19         girl_file.writelines(girl)  #这两行代码就是往 13,14行代码的那两个文件写入东西
20          #写入东西之后该干嘛了呢? 截止到这里 第一行======上面的内容已经保存成boy1.txt girl.txt了  想要读下面一段话,但是boy 和 girl这两个定义的数组都是上一段的东西 这时候就该把它们清空了
21         boy = []
22         girl = []
23         count += 1
24 
25 file_name_boy = 'boy' + str(count) +'.txt'
26 file_name_girl = 'girl' + str(count) + '.txt'
27 boy_file = open(file_name_boy,'w')
28 girl_file = open(file_name_girl,'w')
29 boy_file.writelines(boy)    #把boy 写入boy_file (boy原本是个【】,后来已经通过上面的 if roel那个循环 吧 ===== 上面小甲鱼的话加到里面)
30 girl_file.writelines(girl)
31 
32 #活干完了 ,该把文件关上了

整个思想就是上面那样 当时怎么能干笨活 下面 优化一下

 

啥也不说了看注释

 1 f = open('record2.txt')
 2 
 3 # 保存文件那里总是重复的写,这里把他定义成一个函数
 4 
 5 
 6 def save_file(count,boy,girl):  #下面会用到三个变量 count boy girl 所以这里记得要加上这三个未定义的变量
 7     filename_boy_name = 'boy' + str(count) + '.txt'
 8     filename_girl_name = 'girl' + str(count) +'.txt'
 9     boy_file = open(filename_boy_name,'w')
10     girl_file = open(filename_girl_name,'w')
11     boy_file.writelines(boy)
12     girl_file.writelines(girl)
13     boy_file.close()
14     girl_file.close()
15 
16 
17 #这里为了以后使用方便 把分裂文字,然后写入这个功能也写成函数,说不定以后还用得到呢
18 
19 def split_file(filename):   #函数()里面不用急着写,下面用到什么,这里再写什么也不迟
20     f = open(filename)
21     girl = []
22     boy = []
23     count = 1
24     for each_line in f:
25         (role, line_spoken) = f.split(':', 1)
26         if each_line[:6] == '======':
27             if role == '小甲鱼':
28                 boy.append(line_spoken)
29             else:
30                 girl.append(line_spoken)
31         else:
32             save_file(count,boy,girl)   #这里为什么不像其它函数一样 填具体的东西呢? 因为前面已经定义过了
33             count +=1
34             boy = []
35             girl = []
36     save_file(count,boy,girl)
37     f.close()
38 
39 
40 #两个功能都写好了 ,现在用用这个利器吧
41 split_file('record.txt')

 

 

 

 

  

 

posted @ 2019-10-18 16:58  秋叶哈哈宋梦辉  阅读(1486)  评论(0编辑  收藏  举报