源文档:

 

代码实现:

 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')

 

  

 

01-20 23:51
查看更多