腳本1:
這兩天用python寫了一個刪除指定目錄下過期時間的腳本。也可能是我初學python,對python還不夠熟習,總覺得這個腳本用shell寫應該更簡單也更容易些。
就功能上來說,該腳本已經實現了我想要的效果,不過該腳本還不夠通用性,還有更多可以完善的地方。目前該腳本在python2.4下運行良好。同時,我在腳本中加入了對python版本的判斷,理論上2.7下也應該可以正常使用。有環境的朋友可以幫忙測試一下。
該腳本不完善的地方在于,只能支持一級目錄下的文件刪除,還不支持目錄遞歸。同時過期文件的定義只能按week來做。
Python代碼:
腳本2:
實現類似下面的Shell命令的操作
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)
新聞熱點
疑難解答
圖片精選