python - 删除目录 python3 中最旧的文件

标签 python python-3.x file sorting delete-file

我正在编写一个数据记录程序(安全摄像头),我需要在磁盘已满之前删除文件夹中最旧的文件。将会有数千个文件,重要的是任何排序功能都不会占用资源超过几秒钟。我已经阅读了几个想法,但似乎很难让它们发挥作用(我对 python 有点陌生)。

所以:
想知道 os.walk 对于数千或数万个文件的列表是否会相对较慢?

我对 Matteo Dell'Amico 的建议(来自另一个网站)非常感兴趣:

min(os.listdir(path), key=os.path.getctime)
max(os.listdir(path), key=os.path.getctime)

我不断收到 FileNotFoundError: [Errno 2]..... 也许有人可以帮助解决此问题所需的语法? 最终,我确信有多种方法可以做到这一点,但我更喜欢对系统资源最有效的方法。非常感谢!

编辑:我尝试过在顶部添加:

import os
path = "home/pi/Desktop/images/"

最佳答案

您复制的代码从 os.listdir 中检索裸名称,并将它们直接传递给 os.path.getctime 。如果这些名称需要与您的路径结合起来才能工作,那么这种方法就不太有效。

对您已经尝试的内容进行简单修改(不使用 Python 3 的任何新功能)可能如下所示:

min(os.listdir(path), key=lambda p: os.path.getctime(os.path.join(path, p)))

关于python - 删除目录 python3 中最旧的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627872/

相关文章:

python - Python中两个Aruco标记之间的距离?

python - 将 LocustIO 集成到 Jenkins 的性能插件中

python - 获取集合中不包括某些元素的元素

file - Grails在部署war时无法找到pdf资源

c - 将文件中的内容添加到链表

linux - 如何使用文件协议(protocol)访问本地系统上的目录?

python - 使用 python 运行 cmd 命令(停止/启动服务)

python - 是否可以使用 NumPy 或 Python 中的其他包获取 double 二进制浮点的保留特殊数字

python - Python3 : list is unhashable type 设置函数错误

python - 如何返回类中列表的迭代