源文檔:
'這是一段待寫入的數小客服:小甲魚?,今天有?客戶問你有沒有女朋友?\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')