国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python刪除過期log文件操作實(shí)例解析

2020-02-22 23:04:17
字體:
供稿:網(wǎng)友

本文研究的主要是python刪除過期log文件的相關(guān)內(nèi)容,具體介紹如下。

1. 用Python遍歷目錄

os.walk方法可以很方便的得到目錄下的所有文件,會(huì)返回一個(gè)三元的tupple(dirpath, dirnames, filenames),其中,dirpath是代表目錄的路徑,dirnames是一個(gè)list,包含了dirpath下的所有子目錄的名字,filenames是一個(gè)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'

當(dāng)然,也可以利用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ù)特定名稱的文件以及文件更改時(shí)間來判斷是否需要?jiǎng)h除,os.path.getmtime(file)來得到文件最后改變的時(shí)間,當(dāng)然除了諸如“XXX" in file的方法來判斷文件名外,也可以采用正則表達(dá)式的方法。

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             
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富裕县| 壶关县| 阿拉善盟| 承德县| 禹城市| 绥棱县| 永平县| 哈密市| 昌乐县| 兴城市| 昌宁县| 恭城| 云浮市| 夏津县| 江城| 万源市| 基隆市| 达拉特旗| 永新县| 普安县| 红安县| 海盐县| 大同县| 宜川县| 黎川县| 卢龙县| 临清市| 渝中区| 鹿邑县| 阳高县| 新巴尔虎右旗| 富裕县| 葫芦岛市| 孝义市| 仙游县| 利辛县| 金秀| 宁津县| 三河市| 玛纳斯县| 博白县|