Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-删除旧文件_Python - Fatal编程技术网

Python-删除旧文件

Python-删除旧文件,python,Python,我对python有点陌生,一直在尝试自己解决这个问题,但到目前为止只得到了一些细节。基本上,我正在寻找一个脚本,它将递归搜索一个目录及其子目录,并删除至少24小时前的文件,但不改变目录。 非常感谢您提供的任何建议或示例。如果您需要它递归检查所有目录中的所有文件,应该执行以下操作: import os, time path = "/path/to/folder" def flushdir(dir): now = time.time() for f in os.listdir(di

我对python有点陌生,一直在尝试自己解决这个问题,但到目前为止只得到了一些细节。基本上,我正在寻找一个脚本,它将递归搜索一个目录及其子目录,并删除至少24小时前的文件,但不改变目录。
非常感谢您提供的任何建议或示例。

如果您需要它递归检查所有目录中的所有文件,应该执行以下操作:

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)
导入操作系统,时间
path=“/path/to/folder”
def冲洗目录(目录):
now=time.time()
对于os.listdir(dir)中的f:
fullpath=os.path.join(dir,f)
如果os.stat(完整路径).st_mtime<(现在为-86400):
如果os.path.isfile(完整路径):
删除操作系统(完整路径)
elif os.path.isdir(完整路径):
flushdir(完整路径)
flushdir(路径)
这使用该方法递归搜索目录。对于每个文件,它将检查修改的日期,并将其与(当前时间)进行比较。被构造为创建24小时的时间增量

它搜索目录os.path.curdir,这是调用脚本时的当前目录。您可以将
dir\u to\u 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)

到目前为止,您尝试了什么?它做错了什么?让我们看看这些零碎的东西,也许我们可以帮助将其粘合在一起?如果不更改目录,您无法从目录中删除文件。如果要删除旧文件并保存新文件(即使它是一分钟前生成的),我如何修改它。如果要删除旧文件并保存新文件,以及如果它是一分钟前生成的,我如何修改它