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