我对python有点新鲜,并且一直试图自己解决这个问题,但到目前为止只能获得点点滴滴.基本上我正在寻找一个脚本,它将递归搜索一个目录及其子目录并删除至少24小时但不改变目录的文件.任何建议或例子都非常感谢.
jte*_*ace 33
这使用os.walk方法递归搜索目录.对于每个文件,它使用os.path.getmtime检查修改日期,并将其与datetime.now(当前时间)进行比较.datetime.timedelta构造为创建24小时的timedelta.
它在目录os.path.curdir中搜索,该目录是调用脚本时的当前目录.您可以设置dir_to_search其他内容,例如脚本的参数.
import os
import datetime
dir_to_search = os.path.curdir
for dirpath, dirnames, filenames in os.walk(dir_to_search):
for file in filenames:
curpath = os.path.join(dirpath, file)
file_modified = datetime.datetime.fromtimestamp(os.path.getmtime(curpath))
if datetime.datetime.now() - file_modified > datetime.timedelta(hours=24):
os.remove(curpath)
Run Code Online (Sandbox Code Playgroud)
如果你需要它以递归方式检查所有目录中的所有文件,这样的事情应该做:
import os, time
path = "/path/to/folder"
def flushdir(dir):
now = time.time()
for f in os.listdir(dir):
fullpath = os.path.join(dir, f)
if os.stat(fullpath).st_mtime < (now - 86400):
if os.path.isfile(fullpath):
os.remove(fullpath)
elif os.path.isdir(fullpath):
flushdir(fullpath)
flushdir(path)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17311 次 |
| 最近记录: |