当前位置: 首页 > 面试题库 >

Python,删除X天之前的文件夹中的所有文件

苏洛城
2023-03-14
问题内容

我正在尝试编写python脚本来删除X天之前的文件夹中的所有文件。这是我到目前为止所拥有的:

import os, time, sys

path = r"c:\users\%myusername%\downloads"

now = time.time()

for f in os.listdir(path):

 if os.stat(f).st_mtime < now - 7 * 86400:

  if os.path.isfile(f):

   os.remove(os.path.join(path, f))

运行脚本时,我得到:

Error2 - system cannot find the file specified

并给出文件名。我究竟做错了什么?


问题答案:

os.listdir()返回裸文件名列表。它们没有完整的路径,因此您需要将其与包含目录的路径合并。您在删除文件时执行此操作,但在文件删除时stat(或在执行isfile()任一操作时)则不执行此操作。

最简单的解决方案是在循环的顶部执行一次:

f = os.path.join(path, f)

现在f是文件的完整路径,您可以f在任何地方使用它(将remove()调用f也更改为仅使用)。



 类似资料:
  • 问题内容: 我想删除7天以上的文件和文件夹,所以我尝试了 因此,当我运行它时,它不会显示任何目录,但在子目录中却显示了几个文件。 在一个特定目录中删除7天以上的文件/文件夹的正确方法是什么? 问题答案: 您可以利用这段代码 说明 第一个参数是文件的路径。如上例所示,它可以是路径,目录或通配符。我建议使用完整路径,并确保在不执行exec的情况下运行命令,以确保获得正确的结果。 第二个参数-mtime

  • 有关删除数据的Firebase文档中说: 删除数据 删除数据的最简单方法是对数据位置的引用调用remove()。 还可以通过将null指定为另一个写入操作(如set()或update())的值来删除。您可以将此技术与update()结合使用,在单个API调用中删除多个子项。 有谁能解释一下,我认为最后一行可以帮助我删除firebase文件夹中的所有文件是什么意思?

  • 问题内容: 我一直在使用一段特定的代码从文件夹中删除文件,但是事实证明这是非常有问题的,因为也许我忘记了关闭一个或两个InputStream。我拥有的代码是如此之大,以至于我无法看到所有尚未关闭的Inputstreams。有没有打开InputStream的删除文件的方法? 这是我一直在使用的代码; 我已经编辑了代码。此版本有效。 问题答案: 提供的代码块中没有InputStream实例。 为了不编

  • 我正在C:drive文件夹中创建一个名为abc的dat文件,如下所示,现在我的文件每天都会生成,假设我的文件是今天生成的,然后tommrow也会像往常一样生成,但在生成tommrow时,我必须确保删除前一天的文件,因为该文件夹中的空间有限,每次需要执行此检查时,前一天的文件都会从该文件夹中删除,请建议如何实现这一点。。

  • 本文向大家介绍java 删除文件夹中的所有内容而不删除文件夹本身的实例,包括了java 删除文件夹中的所有内容而不删除文件夹本身的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇java 删除文件夹中的所有内容而不删除文件夹本身的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 例如,我有一个名为“ Temp”的文件夹,我想使用PHP删除或刷新此文件夹中的所有文件。我可以这样做吗? 问题答案: 如果要删除“隐藏”文件(如.htaccess),则必须使用