本文實例講述了Python實現將一個大文件按段落分隔為多個小文件的簡單操作方法。分享給大家供大家參考,具體如下:
今天幫同學處理一點語料。語料文件有點大,并且是以連續兩個換行符作為段落標志,他想把它按段落分隔成多個小文件,即每3個段落組成一個新文件。由于以前沒有遇到過類似的操作,在網上找了一些相似的方法,看起來都有點復雜。所以經嘗試,自己寫了一段代碼,完美解決問題。
基本思路是,先讀原文件內容,并使用正則表達式,依據/n/n進行切片處理,結果為一個列表,其中每一個列表元素都存放一個切片中的內容;然后創建一個寫文件的句柄;接下來遍歷切片列表,并寫入當前切片內容,判斷是否已經寫入了3個段落,如果不是,則繼續讀寫下一個切片,如果已經夠3個,則關閉之前的寫文件句柄,以不同的文件名重新創建一個新的寫文件句柄,循環結束,等待讀寫下一個切片。
# -*- coding:utf8 -*-import re;p=re.compile('/n/n',re.S);fileContent=open('files/辦公室.txt','r',encoding='utf8').read();#讀文件內容paraList=p.split(fileContent) #根據換行符對文本進行切片fileWriter=open('files/0.txt','a',encoding='utf8');#創建一個寫文件的句柄for paraIndex in range(len(paraList)):#遍歷切片后的文本列表 fileWriter.write(paraList[paraIndex]);#先將列表中第一個元素寫入文件中 if((paraIndex+1)%3==0):#判斷是否寫夠3個切片,如果已經夠了 fileWriter.close(); #關閉當前句柄 fileWriter=open('files/'+str((paraIndex+1)/3)+'.txt','a',encoding='utf8'); #重新創建一個新的句柄,等待寫入下一個切片元素。注意這里文件名的處理技巧。fileWriter.close();#關閉最后創建的那個寫文件句柄print('finished');
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python URL操作技巧總結》、《Python圖片操作技巧總結》、《Python數據結構與算法教程》、《Python Socket編程技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答