前言
相信大家初入某個(gè)項(xiàng)目,一般都要看代碼。有時(shí)候,想把代碼文件打印下來看,不過一般代碼文件數(shù)量都在兩位數(shù)或更多,逐一打開、打印,確實(shí)太耗費(fèi)精力了,此外,也會(huì)出現(xiàn)某個(gè)代碼文件打印到紙上只占了一兩行的情況,很浪費(fèi)紙。如果可以合并到一個(gè)文本文件里面上面這些問題就解決。
目前一個(gè)用的比較多的功能:將多個(gè)小文件的內(nèi)容合并在一個(gè)統(tǒng)一的文件中,對原始文件重命名標(biāo)記其已被處理過。
之前使用其他腳本寫的,嘗試用python寫了一下,順便熟悉一下python的文件處理命令。
原始文件

經(jīng)過處理之后

最后還有一個(gè)蛋疼的因?yàn)榭s進(jìn)產(chǎn)生的第一個(gè)回車符
其中包含了文件的創(chuàng)建和移除,文件內(nèi)容的讀寫,文件的重命名的語法命令等等
示例代碼
# -*- coding: utf-8 -*-import osimport timeimport datetimedef merge_file(file_path,file_name): #file_path must exits if(os.path.exists(file_path) is False): print('file_path is not exists') return if(os.path.exists(os.path.join(file_path, file_name))): os.remove(os.path.join(file_path, file_name)) #'%Y_%m_%d%H%M%S',創(chuàng)建一個(gè)以日期命名的文本文件 targetfilename = str(time.strftime('%Y%m%d%H%M%S'))+'.txt' fobj = open(os.path.join(file_path, targetfilename), 'w') fobj.close() # a 是以追加的方式打開文件寫入 with open(os.path.join(file_path, targetfilename), 'a', encoding='GBK') as f_wirte: files = os.listdir(file_path) for file in files: print(os.path.join(file_path, file)) with open(file_path+'//'+file, 'r', encoding='GBK') as f: for line in f.readlines(): if(line.strip().__len__()) > 0:# 排除空行 f_wirte.write(line) f_wirte.write('/n')# 每讀完一個(gè)文件之后,加一個(gè)回車,否則第一個(gè)文件的最后一行跟第二個(gè)文件的第一行沒有回車 # 文件合并之后,重命名原始的文件, # os.path.splitext(file)[0] 提取文件名,不包括后綴名 # os.path.splitext(file)[1] 提取文件后綴名 if (file != targetfilename): os.rename(os.path.join(file_path, file),os.path.join(file_path, os.path.splitext(file)[0] + '在_' +str(time.strftime('%Y%m%d%H%M%S')) +'_已處理' + '.txt'))merge_file('D:/TestPythonMergeFile','auoto_create_a_category_file')總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網(wǎng)的支持。
新聞熱點(diǎn)
疑難解答
圖片精選