【发布时间】:2018-03-19 13:35:55
【问题描述】:
我正在编写一个数据记录程序(安全摄像头),我需要在磁盘已满之前删除文件夹中最旧的文件。将有数千个文件,重要的是任何排序功能都不会在理想情况下占用资源超过几秒钟。我已经阅读了几个想法,似乎很难让它们工作(我对 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.walk()给你买太多东西。您将节省一些函数调用开销,但这与 I/O 的成本相比微不足道。
标签: python python-3.x file sorting delete-file