亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python學習037-----python之文件(二):文件的分割與保存

系統 2140 0

【一個任務】
這節課我們來完成一個任務:
將文件record.txt中的數據進行分割,并按照以下規律保存起來:
1.小甲魚的對話單獨保存為boy_*.txt的文件(去掉"小甲魚:")
2.客服的對話單獨保存為girl_*.txt的文件(去掉"客服:")
3.文件中共有4段對話,分別保存為boy_1.txt, girl_1.txt, boy_2.txt, girl_2.txt,?? ?boy_3.txt, girl_3.txt,
?? boy_4.txt, girl_4.txt 共8個文件。
PS: 文件中不同的對話間已經使用"========"分割了
文件如下:

python學習037-----python之文件(二):文件的分割與保存_第1張圖片

            
              f = open( 'record.txt' ) ? ? #由于python文件和txt文件在同一個文件夾,所以不用加絕對路徑
boy = []
girl = [] ? ?#初始化兩個列表,一會用于存放文件信息
counter = 1 ?#初始化計數器

for each_line in f:
?? ?if each_line[:6] != '======': ?#這里只判斷前六個符號,前六個不是等號就可以了,不用判斷那么長
?? ??? ?#這里進行字符串分割操作
?? ??? ?(role, line_spoken) = each_line.split(':',1) ? ? #注意:split()中的冒號要和文件中的一致,否則報錯。
?? ??? ?if role == '小甲魚':
?? ??? ??? ?boy.append(line_spoken)
?? ??? ?if role == '客服':
?? ??? ??? ?girl.append(line_spoken)
?? ?else:
?? ??? ?#這里進行文件的分別保存操作
?? ??? ?file_name_boy = 'boy_' + str(counter) + '.txt'?
?? ??? ?file_name_girl = 'girl_' + str(counter) + '.txt'
?? ??? ?
?? ??? ?boy_file = open( file_name_boy, 'w' ) ? ? ?#打開文件
?? ??? ?girl_file = open(file_name_girl, 'w') ? ? ? ? ?#打開文件

?? ??? ?#前面已經將小甲魚和客服的對話保存在了boy和girl這兩個序列中
?? ??? ?boy_file.writelines( boy ) ? ? ? ? ? #寫入文件(由前面的知識知道,將序列寫入文件需要使用writelines()這個內置方法)
?? ??? ?girl_file.writelines( girl ) ? ? ? ? ? ? #寫入文件

?? ??? ?boy_file.close() ? ? ? ? ?#文件寫入完后一定要記得關閉
?? ??? ?girl_file.close() ? ? ? ? ? #如果不關閉文件,那么寫入的內容會一直保存在緩沖區里,不會寫入到文件中

?? ??? ?boy =[] ? ? ? ? ? ? ? ? ? ? ?#別忘了對這兩個序列進行初始化,以便下次寫入
?? ??? ?girl = [] ? ? ? ? ? ? ? ? ? ? ?#同上
?? ??? ?counter += 1 ? ? ? ? ? ?#計數器加1

f.close() ? ? #使用完文件要記得關閉 !
print('文件分割完畢!')
            
          

上面的代碼有一個小小的問題,即:文件的保存是在遇到"======"后進行的,故如果不在最后一段
加上"======"的話,最后一段文字是只被分割而未被保存的。所以要解決上面的問題,可以在文字
中的底部加上"======",或者在代碼跳出for循環后加上保存文件的代碼。但是如果在for循環結束
后加保存代碼又會顯得程序非常臃腫,所以我們應該使用函數來替代重復代碼,這樣程序才會更加
簡潔。如下:

            
              def function():
?? ?#這里進行文件的分別保存操作
?? ?file_name_boy = 'boy_' + str(counter) + '.txt'?
?? ?file_name_girl = 'girl_' + str(counter) + '.txt'
?? ??? ?
?? ?boy_file = open( file_name_boy, 'w' ) ? ? ?#打開文件
?? ?girl_file = open(file_name_girl, 'w') ? ? ? ? ?#打開文件

?? ?#下面的主程序中已經將小甲魚和客服的對話保存在了boy和girl這兩個序列中
?? ?boy_file.writelines( boy ) ? ? ? ? ? #寫入文件(由前面的知識知道,將序列寫入文件需要使用writelines()這個內置方法)
?? ?girl_file.writelines( girl ) ? ? ? ? ? ? #寫入文件

?? ?boy_file.close() ? ? ? ? ?#文件寫入完后一定要記得關閉
?? ?girl_file.close() ? ? ? ? ? #如果不關閉文件,那么寫入的內容會一直保存在緩沖區里,不會寫入到文件中

#【程序入口在此處】
f = open( 'record.txt' ) ? ? #由于python文件和txt文件在同一個文件夾,所以不用加絕對路徑 ??
boy = [] ? #初始化兩個列表,一會用于存放文件信息
girl = [] ? ?
counter = 1 ?#初始化計數器,為了給文件名標注序號

for each_line in f:
?? ?if each_line[:6] != '======': ?#這里只判斷前六個符號,前六個不是等號就可以了,不用判斷那么長
?? ??? ?#這里進行字符串分割操作
?? ??? ?(role, line_spoken) = each_line.split(':',1) ? ? #注意:split()中的冒號要和文件中的一致,否則報錯。
?? ??? ?if role == '小甲魚':
?? ??? ??? ?boy.append(line_spoken)
?? ??? ?if role == '客服':
?? ??? ??? ?girl.append(line_spoken)
?? ?else:
?? ??? ?function() ? ? ? ? ? ? ? ? ?#遇到"======"就保存文件
?? ??? ?boy =[] ? ? ? ? ? ? ? ? ? ? ?#別忘了對這兩個序列進行初始化,以便下次寫入
?? ??? ?girl = [] ? ? ? ? ? ? ? ? ? ? ?#同上
?? ??? ?counter += 1 ? ? ? ? ? ?#計數器加1

function() ?#保存分割出來的最后一段文件

f.close() ? ? #使用完文件要記得關閉 !
print('文件分割完畢!')
            
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品三级国产一区二区三区四区 | 欧美色视频在线观看 | 成年黄网站免费大全毛片 | 国产激情视频在线 | 日本久操视频 | 精品三级国产一区二区三区四区 | 欧美一级毛片在线播放 | 成人性一级视频在线观看 | 日日摸天天摸狠狠摸摸 | 国产精品久久久久久久久久一区 | 国产精品视屏 | 亚洲天堂一区二区三区 | 四虎影视色费永久在线观看 | 亚洲乱视频 | 国产精品久久久精品视频 | 中文国产欧美在线观看 | 亚洲久久 | 极品精品国产超清自在线观看 | 亚洲精品国产福利一区二区三区 | 福利午夜在线 | 日本久久高清视频 | 99热最新网站地址获取 | 日日艹夜夜 | 国产牛牛 | 欧美 日韩 中文 | 国产一区二区三区乱码网站 | 国产成人久久一区二区三区 | 色天天色综合 | 久草视频在线播放 | 久久精品www| 亚洲一区在线免费观看 | a在线观看 | 国产特黄一级毛片特黄 | 成年人一级毛片 | 欧洲精品视频在线观看 | 一级免费视频 | 播放一级毛片 | 国产亚洲午夜精品a一区二区 | 国产精品亚洲专一区二区三区 | 在线免费午夜视频 | 欧美国产成人精品一区二区三区 |