源文档:
代码实现:
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')