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

經(jīng)過處理之后

最后還有一個蛋疼的因為縮進(jìn)產(chǎn)生的第一個回車符
其中包含了文件的創(chuàng)建和移除,文件內(nèi)容的讀寫,文件的重命名的語法命令等等
示例代碼
# -*- coding: utf-8 -*-
import os
import time
import datetime
def 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)建一個以日期命名的文本文件
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')# 每讀完一個文件之后,加一個回車,否則第一個文件的最后一行跟第二個文件的第一行沒有回車
# 文件合并之后,重命名原始的文件,
# 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í)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
python 多進(jìn)程隊列數(shù)據(jù)處理詳解
今天小編就為大家分享一篇python 多進(jìn)程隊列數(shù)據(jù)處理詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12
淺談pandas dataframe對除數(shù)是零的處理
這篇文章主要介紹了淺談pandas dataframe對除數(shù)是零的處理,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python中@property的作用和getter setter的解釋
這篇文章主要介紹了python中@property的作用和getter setter的解釋,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
python中實現(xiàn)php的var_dump函數(shù)功能
這篇文章主要介紹了python中實現(xiàn)php的var_dump函數(shù)功能,var_dump函數(shù)在PHP中調(diào)試時非常實用,本文介紹在Python中實現(xiàn)這個函數(shù),需要的朋友可以參考下2015-01-01
pytorch中常用的乘法運算及相關(guān)的運算符(@和*)
pytorch是深度學(xué)習(xí)框架,而深度學(xué)習(xí)其實本質(zhì)就是一大堆矩陣乘法,最后用來模擬一個高維擬合函數(shù),下面這篇文章主要給大家介紹了關(guān)于pytorch中常用的乘法運算及相關(guān)的運算符(@和*)的相關(guān)資料,需要的朋友可以參考下2022-01-01

