這篇文章主要介紹python怎么刪除過期log文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設公司,專注網(wǎng)站建設、網(wǎng)站設計,有關(guān)成都企業(yè)網(wǎng)站建設方案、改版、費用等問題,行業(yè)涉及宣傳片制作等多個領域,已為上千家企業(yè)服務,得到了客戶的尊重與認可。Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發(fā)獨立的項目和大型項目。
1. 用Python遍歷目錄
os.walk方法可以很方便的得到目錄下的所有文件,會返回一個三元的tupple(dirpath, dirnames, filenames),其中,dirpath是代表目錄的路徑,dirnames是一個list,包含了dirpath下的所有子目錄的名字,filenames是一個list,包含了非目錄的文件,如果需要得到全路徑,需要使用os.path.join(dirpath,name).例如test目錄的結(jié)構(gòu)為:
test------------file_c
|
-----------dir_a1/file_a1
| |
| -------dir_a2/file_a2
|
------------dir_b1/file_b1
那么使用如下代碼:
import os for i in os.walk('test'): print i
結(jié)果為:
('test', ['dir_a1', 'dir_b1'], ['file_c1'])('test/dir_a1', ['dir_a2'], ['file_a1'])('test/dir_a1/dir_a2', [], ['file_a2'])('test/dir_b1', [], ['file_b1'])
要得到帶路徑的文件,則可以這樣操作:
for i in os.walk('test'): #print i for j in i[2]: os.path.join(i[0],j)
結(jié)果為:
'test/file_c1'
'test/dir_a1/file_a1'
'test/dir_a1/dir_a2/file_a2'
'test/dir_b1/file_b1'
當然,也可以利用os.path.isdir判斷來遞歸操作得到目錄中的文件:
def walk(dir): ret = [] dir = os.path.abspath(dir) for file in [file for file in os.listdir(dir) if not file in [".",".."]]: nfile = os.path.join(dir,file) if os.path.isdir(nfile): ret.extend( walk(nfile) ) else: ret.append( nfile ) return ret
2. 排除需要保留文件
根據(jù)特定名稱的文件以及文件更改時間來判斷是否需要刪除,os.path.getmtime(file)來得到文件最后改變的時間,當然除了諸如“XXX" in file的方法來判斷文件名外,也可以采用正則表達式的方法。
def shouldkeep(file): if '.py' in file: return True elif '.conf' in file: return True elif 'current' in file: return True elif 'rtb' in file and datetime.datetime.fromtimestamp( os.path.getmtime(file) ) > datetime.datetime.now() - datetime.timedelta(3): return True # the log webdebug/popterr/webaccess/controller_slow/game/checking_social which are modified 6 day ago should be removed elif datetime.datetime.fromtimestamp( os.path.getmtime(file) ) < \ datetime.datetime.now() - datetime.timedelta(6)\ and ('webdebug' in file \ or 'potperr' in file\ or 'webaccess' in file\ or 'controller_slow' in file\ or 'game.' in file\ or 'checkin_social' in file\ ): return False elif datetime.datetime.fromtimestamp( os.path.getmtime(file) ) < \ datetime.datetime.now() - datetime.timedelta(2)\ and ('queue.master.info' in file): return False elif datetime.datetime.fromtimestamp( os.path.getmtime(file) ) > \ datetime.datetime.now() - datetime.timedelta(6): return True else: return False
files = walk('/var/server/log') for i in files: if not shouldkeep(i): print i, datetime.datetime.fromtimestamp( os.path.getmtime(i) ) os.remove( i )
將該腳本用crontab定時每天執(zhí)行一次,即可定期每天清理/var/server/log下的過期文件。
以上是“python怎么刪除過期log文件”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:python怎么刪除過期log文件-創(chuàng)新互聯(lián)
文章分享:http://m.rwnh.cn/article0/dggioo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、Google、電子商務、營銷型網(wǎng)站建設、網(wǎng)站設計、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容