欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python刪除指定目錄下過期文件的2個腳本分享

 更新時間:2014年04月10日 08:54:26   作者:  
這篇文章主要介紹了Python刪除指定目錄下過期文件2個腳本分享,可以用在如刪除指定日期前的日志文件,需要的朋友可以參考下

腳本1:

這兩天用python寫了一個刪除指定目錄下過期時間的腳本。也可能是我初學python,對python還不夠熟習,總覺得這個腳本用shell寫應該更簡單也更容易些。
就功能上來說,該腳本已經(jīng)實現(xiàn)了我想要的效果,不過該腳本還不夠通用性,還有更多可以完善的地方。目前該腳本在python2.4下運行良好。同時,我在腳本中加入了對python版本的判斷,理論上2.7下也應該可以正常使用。有環(huán)境的朋友可以幫忙測試一下。
該腳本不完善的地方在于,只能支持一級目錄下的文件刪除,還不支持目錄遞歸。同時過期文件的定義只能按week來做。

Python代碼:

復制代碼 代碼如下:

#! /usr/bin/env python
# -*- coding=utf-8 -*-
import sys
import os
import time,datetime

# 定義需要刪除文件的目錄
dir = '/data/webbak/'
# 被刪除文件寫入日志文件
logdir = '/var/log'
logfile = os.path.join(logdir, 'delete.log')

# 獲取當前系統(tǒng)python版本
ver = sys.version
ver = ver.split(' ')
ver = ver[0]

# 將"Wed Jul  4 13:25:59 2012"格式的時間轉成“2012-07-02 14:50:15”格式的時間
# version是當前系統(tǒng)python版本號
# time是"Wed Jul  4 13:25:59 2012"格式的時間
# 函數(shù)返回"2012-07-02 14:50:15"格式的時間
def string2time(str_time, version = ver):
 version_l = version.split('.')[0:2]
 ver = version_l[0] + '.' + version_l[1] 
 if (ver == '2.7'):
  f_time = datetime.datetime.strptime(str_time, time_format)
  f_time = f_time.strftime('%Y-%m-%d %H:%M:%S')
  return f_time
 elif(ver == '2.4'):
  f_time = time.strptime(str_time, time_format)
  f_time = datetime.datetime(*f_time[0:6])
  return f_time

# 時間格式
time_format = "%a %b %d %H:%M:%S %Y"
# 取得當前時間
today = datetime.datetime.now()
# 定義4個星期
four_weeks = datetime.timedelta(weeks=6)
# 4星期前的日期
four_weeks_ago = today - four_weeks
# 將時間轉成timestamps
four_weeks_ago_timestamps = time.mktime(four_weeks_ago.timetuple())
# 列出目錄中的所有文件
files = os.listdir(dir)
# 打開要刪除的文件日志
fh = open(logfile, "w+")
# 遍歷文件,打印出文件的創(chuàng)建時間
for f in files:
 # 忽略掉.開頭的文件
 if f.startswith('.'):
  continue
 # 忽略掉當前目錄下的目錄
 if os.path.isdir(os.path.join(dir,f)):
  continue
 # 獲得文件的modify時間,并轉換成timestamp格式
 file_timestamp = os.path.getmtime(os.path.join(dir, f))
 file_time_f = string2time(time.ctime(file_timestamp))
 if float(file_timestamp) <= float(four_weeks_ago_timestamps):
  fh.write(str(today) + "\t" + str(file_time_f) + "\t" + os.path.join(dir,f) + "\n")
  os.remove(os.path.join(dir,f))
# 關閉文件
fh.close()


腳本2:
實現(xiàn)類似下面的Shell命令的操作

復制代碼 代碼如下:
find  /data/log -ctime +5 | xargs  rm  -f

Python代碼:
復制代碼 代碼如下:

import os
import sys
import time
class DeleteLog:


    def __init__(self,fileName,days):
        self.fileName = fileName
        self.days = days
    def delete(self):
        if os.path.isfile(self.fileName):
            fd = open(self.fileName,'r')
            while 1:
                buffer = fd.readline()
                if not buffer : break
                if os.path.isfile(buffer):
                    os.remove(buffer)
            fd.close()
        elif os.path.isdir(self.fileName):
            for i in [os.sep.join([self.fileName,v]) for v in os.listdir(self.fileName)]:
                print i
                if os.path.isfile(i):
                    if self.compare_file_time(i):
                        os.remove(i)
                elif os.path.isdir(i):
                    self.fileName = i
                    self.delete()
    def compare_file_time(self,file):
        time_of_last_access = os.path.getatime(file)
        age_in_days = (time.time()-time_of_last_access)/(60*60*24)
        if age_in_days > self.days:
            return True
        return False
if __name__ == '__main__':
    if len(sys.argv) == 2:
        obj = DeleteLog(sys.argv[1],0)
        obj.delete()
    elif len(sys.argv) == 3:
        obj = DeleteLog(sys.argv[1],int(sys.argv[2]))
        obj.delete()
    else:
        print "usage: python %s listFileName|dirName [days]" % sys.argv[0]
        sys.exit(1)

相關文章

  • Python pandas讀取CSV文件的注意事項(適合新手)

    Python pandas讀取CSV文件的注意事項(適合新手)

    這篇文章主要給大家介紹了關于Python pandas讀取CSV文件的注意事項,非常適合新手,csv是我接觸的比較早的一種文件,比較好的是這種文件既能夠以電子表格的形式查看又能夠以文本的形式查看,需要的朋友可以參考下
    2021-06-06
  • 對比分析BN和dropout在預測和訓練時區(qū)別

    對比分析BN和dropout在預測和訓練時區(qū)別

    這篇文章主要為大家介紹了對比分析BN和dropout在預測和訓練時區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python如何判斷數(shù)獨是否合法

    Python如何判斷數(shù)獨是否合法

    這篇文章給大家介紹了如何利用Python判斷數(shù)獨是否合法,對大家學習python有一定的參考借鑒價值,有需要的可以一起來看看。
    2016-09-09
  • python 串行執(zhí)行和并行執(zhí)行實例

    python 串行執(zhí)行和并行執(zhí)行實例

    這篇文章主要介紹了python 串行執(zhí)行和并行執(zhí)行實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • 梳理總結Python開發(fā)中需要摒棄的18個壞習慣

    梳理總結Python開發(fā)中需要摒棄的18個壞習慣

    大家好,今天給大家分享 18 個 Python 初學者常有的壞習慣,這些壞習慣不僅影響 Python 代碼的可讀性,而且 影響 Python 的運行性能,摒棄這些壞習慣并以 Pythonic 的方式編寫代碼,提高的不僅僅是你的代碼質量,也給閱讀代碼的人留下好印象
    2022-01-01
  • OpenCV 邊緣檢測

    OpenCV 邊緣檢測

    OpenCV提供了許多邊緣檢測濾波函數(shù),這些濾波函數(shù)都會將非邊緣區(qū)域轉為黑色,將邊緣區(qū)域轉為白色或其他飽和的顏色。這篇文章主要介紹了OpenCV 邊緣檢測,需要的朋友可以參考下
    2019-07-07
  • pytest文檔內置fixture的request詳情

    pytest文檔內置fixture的request詳情

    這篇文章主要介紹了pytest文檔內置fixture的request詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 使用Python計算偏導數(shù)

    使用Python計算偏導數(shù)

    偏導數(shù)在數(shù)學、物理、工程等領域中都有廣泛的應用,特別是在描述多變量系統(tǒng)的變化率、梯度、最小值和最大值等方面,下面我們就來看看如何利用Python計算偏導數(shù)吧
    2024-01-01
  • Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別

    Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別

    本文主要介紹了OpenCV cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • python最常用的三種輸出格式解讀

    python最常用的三種輸出格式解讀

    這篇文章主要介紹了python最常用的三種輸出格式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02

最新評論