python怎么删除过期日志文件

  介绍

这篇文章主要介绍python怎么删除过期日志文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

python是什么意思

python是一种跨平台的,具有解释性,编译性,互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

<强> 1。用Python遍历目录

操作系统。走方法可以很方便的得到目录下的所有文件,会返回一个三元的tupple (dirpath目录名,文件名),其中,dirpath是代表目录的路径,目录名是一个列表,包含了dirpath下的所有子目录的名字,文件名是一个列表,包含了非目录的文件,如果需要得到全路径,需要使用os.path.join (dirpath、名称)。例如测试目录的结构为:

测试- - - - - - - - - - - - file_c
|
- - - - - - - - - - - -dir_a1/file_a1
| |
| - - - - - - -dir_a2/file_a2
|
- - - - - - - - - - - - dir_b1/file_b1

那么使用如下代码:

import  os    ,   for 小姐:os.walk拷贝(& # 39;测试# 39;):,   ,,print 我

结果为:

(& # 39;测试# 39;[& # 39;dir_a1& # 39; & # 39; dir_b1& # 39;], [& # 39; file_c1& # 39;])(& # 39;测试/dir_a1& # 39;, [& # 39; dir_a2& # 39;], [& # 39; file_a1& # 39;])(& # 39;测试/dir_a1/dir_a2& # 39;, [], [& # 39; file_a2& # 39;])(& # 39;测试/dir_b1& # 39;, [], [& # 39; file_b1& # 39;])

要得到带路径的文件,则可以这样操作:

for 小姐:拷贝os.walk(& # 39;测试# 39;):,   ,,# print 小姐:   ,,for  j 我[2]:拷贝,   ,,,,os.path.join(我[0],j)

结果为:

& # 39;测试/file_c1& # 39;
& # 39;测试/dir_a1/file_a1& # 39;
& # 39;测试/dir_a1/dir_a2 file_a2& # 39;
& # 39;测试/dir_b1/file_b1& # 39;

当然,也可以利用os.path。isdir判断来递归操作得到目录中的文件:

def 走(dir):,   时间=ret 才能;[],   时间=dir 才能;os.path.abspath (dir),   for 才能;file 拷贝(file  for  file 拷贝os.listdir (dir), if  not  file 拷贝(“!”,“. .“]]:,   ,,,nfile =, os.path.join (dir,文件),   ,,,if  os.path.isdir (nfile):,   ,,,,,ret.extend(,走路(nfile)),   其他,,,,,   ,,,,,ret.append (, nfile ),   return 才能ret

<强> 2。排除需要保留文件

根据特定名称的文件以及文件更改时间来判断是否需要删除,os.path.getmtime(文件)来得到文件最后改变的时间,当然除了诸如“XXX"在文件的方法来判断文件名外,也可以采用正则表达式的方法。

def  shouldkeep(文件):,   if 才能;& # 39;. py # 39;,拷贝文件:,   ,,,return  True    elif 才能;& # 39;. conf # 39;,拷贝文件:,   ,,,return  True    elif 才能;& # 39;目前# 39;,拷贝文件:,   ,,,return  True    elif 才能;& # 39;rtb& # 39;,拷贝file 以及datetime.datetime.fromtimestamp (, os.path.getmtime(文件),),祝辞,datetime.datetime.now(),安康;datetime.timedelta (3):,   ,,,return  True    #才能,从而log  webdebug/popterr/webaccess/controller_slow/游戏/checking_social  which 断开连接;modified  6, day  ago  should  be  removed    elif 才能;datetime.datetime.fromtimestamp (, os.path.getmtime(文件),),& lt;, \,   ,,,,datetime.datetime.now(),安康;datetime.timedelta (6) \,   ,,,,以及(& # 39;webdebug& # 39;,拷贝file  \,   ,,,,趁机& # 39;potperr& # 39;,拷贝文件\,   ,,,,趁机& # 39;webaccess& # 39;,拷贝文件\,   ,,,,趁机& # 39;controller_slow& # 39;,拷贝文件\,   ,,,,趁机& # 39;游戏# 39;公司,拷贝文件\,   ,,,,趁机& # 39;checkin_social& # 39;,拷贝文件\,   ,,,,):,   ,,,return  False    elif 才能;datetime.datetime.fromtimestamp (, os.path.getmtime(文件),),& lt;, \,   ,,,,datetime.datetime.now(),安康;datetime.timedelta (2) \,   ,,,,以及(& # 39;queue.master.info& # 39;,拷贝文件):,   ,,,return  False    elif 才能;datetime.datetime.fromtimestamp (, os.path.getmtime(文件),),祝辞,\,   ,,,,datetime.datetime.now(),安康;datetime.timedelta (6):,   ,,,return  True    ,,:   ,,,return 假 files =,走路(& # 39;/var/服务器/日志# 39;),   for 小姐:拷贝文件:,   if 才能;not  shouldkeep(我):,   ,,,print 我,datetime.datetime.fromtimestamp (, os.path.getmtime (i),),   null

python怎么删除过期日志文件