Python 比较上次修改时间和当前时间,然后删除文件和文件夹
我有一个服务器,我需要从该服务器上删除特定文件夹中的文件和文件夹,我想每3个月删除一次,我已经知道如何使用crontab和python进行删除,问题是,我只想删除3个月或更长时间的文件或文件夹 我用来删除文件和文件夹的python代码如下:Python 比较上次修改时间和当前时间,然后删除文件和文件夹,python,file-io,time,Python,File Io,Time,我有一个服务器,我需要从该服务器上删除特定文件夹中的文件和文件夹,我想每3个月删除一次,我已经知道如何使用crontab和python进行删除,问题是,我只想删除3个月或更长时间的文件或文件夹 我用来删除文件和文件夹的python代码如下: import os import shutil path = '/path/to/folder' for root, dirs, files in os.walk(path): for f in files:
import os
import shutil
path = '/path/to/folder'
for root, dirs, files in os.walk(path):
for f in files:
os.unlink(os.path.join(root, f))
for d in dirs:
shutil.rmtree(os.path.join(root,d))
我现在想要的是获得上次修改的每个文件和文件夹月份,并将其与Im所在的当前月份进行比较,然后仅当其“期限”大于或等于3个月时才将其删除
有什么帮助吗?在posix上执行此操作的通常方法是针对文件:
find path -mtime +90 -a -type f -a -exec rm "{}" \;
对于文件夹:
find path -mtime +90 -a -type d -a -exec rm -r "{}" \;
但是当然你需要小心任何rm-r!如果感兴趣的文件夹未嵌套,则更安全:
find path -mtime +90 -a -type d -a -exec rmdir "{}" \;
在python中,shell exec用于此操作。它不是一个跨平台的纯python解决方案。因此,这就是答案 我没有删除3个月以上的文件,而是删除6个月以上的文件和文件夹
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, glob, shutil, time, datetime
path = glob.glob('/home/piratinha/*')
now = time.time()
now_str = datetime.datetime.fromtimestamp(now).strftime('%d-%m-%Y %H:%M:%S')
print now_str
for f in path:
if os.stat(f).st_mtime < now - (6 * 30 * 86400):
if os.path.isfile(f):
print "Removendo", f
os.remove(f)
print "Arquivo Removido"
else:
print "Removendo", f
shutil.rmtree(f)
print "Pasta Removida"
else:
print "Todos os arquivos e pastas são mais novos do que 6 meses."
print now_str
#/usr/bin/env python
#-*-编码:utf-8-*-
导入操作系统、全局、shutil、时间、日期时间
path=glob.glob('/home/piratinha/*'))
now=time.time()
now\u str=datetime.datetime.fromtimestamp(now).strftime(“%d-%m-%Y%H:%m:%S”)
立即打印
对于路径中的f:
如果os.stat(f).st_mtime<现在-(6*30*86400):
如果os.path.isfile(f):
打印“Removendo”,f
删除操作系统(f)
打印“Arquivo Removido”
其他:
打印“Removendo”,f
shutil.rmtree(f)
打印“意大利面Removida”
其他:
印刷“Todos os arquivos e pastas sÃo mais novos do que 6 meses。”
立即打印
比尔
红码