python - Windows的快速文件/目录扫描方法?

标签 python windows

我正在寻找一种高性能方法或库来扫描磁盘上或给定目录中的所有文件并获取它们的基本统计信息 - 文件名、大小和修改日期。

我写了一个 python 程序,它使用 os.walkos.path.getsize 来获取文件列表,它工作正常,但不是特别快。我注意到我下载的一个免费软件程序完成相同的扫描比我的程序快得多。

有什么加快文件扫描速度的想法吗?这是我的 python 代码,但请记住,如果有更好的替代方案,我完全不会使用 os.walk 并且完全愿意使用其他 API(包括 Windows native API)。

for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        ...

我还应该注意到,我意识到 python 代码可能无法加速那么多;我对任何提供更快速度的 native API 特别感兴趣。

最佳答案

好吧,我希望这是 I/O 密集型任务。 因此,python 端的优化将非常无效;我能想到的唯一优化是访问/列出文件的一些不同方式,以减少从文件系统的实际读取。 这当然需要对文件系统有深入的了解,而我没有,而且我不希望 python 的开发人员在实现 os.walk 时具备。

如何产生命令提示符,然后发出“dir”并解析结果? 这可能有点矫枉过正,但幸运的是,'dir' 正在为此类优化做出一些努力。

关于python - Windows的快速文件/目录扫描方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/397293/

相关文章:

python - 模块未找到错误 : No module named 'cv2'

python - Django,无反向匹配

windows - netsh 并阻止访问除一个 WLAN 以外的所有 WLAN

windows - Dockerfile - 在一个 RUN 命令中删除一个文件,它仍然存在于下一个 RUN 命令中

windows - Get-Content 的 PowerShell 问题

linux - 从 shell 脚本启动 pdf 文件

python - 通过 Viewset Django Rest Framework 进行部分更新失败

python - Selenium Chrome 找不到起始位置或卡住,Firefox 工作正常

python - 打印带有列表值的常规字典

java - 使用 Java 在 CMD 中运行简单的 CECopy