中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么刪除過期log文件

發布時間:2021-04-21 10:11:28 來源:億速云 閱讀:236 作者:小新 欄目:開發技術

這篇文章主要介紹python怎么刪除過期log文件,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

python是什么意思

Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。

1. 用Python遍歷目錄

os.walk方法可以很方便的得到目錄下的所有文件,會返回一個三元的tupple(dirpath, dirnames, filenames),其中,dirpath是代表目錄的路徑,dirnames是一個list,包含了dirpath下的所有子目錄的名字,filenames是一個list,包含了非目錄的文件,如果需要得到全路徑,需要使用os.path.join(dirpath,name).例如test目錄的結構為:

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

結果為:

('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)

結果為:

'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. 排除需要保留文件

根據特定名稱的文件以及文件更改時間來判斷是否需要刪除,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定時每天執行一次,即可定期每天清理/var/server/log下的過期文件。

以上是“python怎么刪除過期log文件”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵石县| 信宜市| 广丰县| 辰溪县| 榆社县| 延庆县| 突泉县| 禄丰县| 涟源市| 广宗县| 措勤县| 玉溪市| 厦门市| 乌什县| 宁阳县| 砚山县| 淮安市| 崇左市| 陈巴尔虎旗| 洛川县| 拜泉县| 化州市| 崇信县| 云林县| 民乐县| 子长县| 临澧县| 儋州市| 鄂尔多斯市| 九江县| 藁城市| 淅川县| 神池县| 曲麻莱县| 巨鹿县| 华阴市| 蕉岭县| 兰坪| 新密市| 泰顺县| 习水县|