python - 在 Python 中有效地递归文件目录,同时最大限度地减少内存使用

标签 python multiprocessing directory-structure

我有大量文件,我想对其进行递归并执行 md5 校验和。

其中许多文件存储在多个物理磁盘上,但全部安装在同一目录中:

/mnt/drive1/dir1/file.jpg
/mnt/drive2/dir1/file2.jpg    

如何在不将整个目录和文件结构加载到内存中的情况下通过/mnt 进行递归?

有没有办法用多线程来做到这一点?可能不需要使用多个线程/进程来递归访问目录,但文件操作可能是 CPU 密集型的,这将受益于多个 CPU 核心。

提前致谢。

最佳答案

为什么不使用简单的 os.walk?它不会占用任何大量内存。

import os
for root, dirs, files in os.walk('/mnt'):
    for name in files:
        print os.path.join(root, name)

关于python - 在 Python 中有效地递归文件目录,同时最大限度地减少内存使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23956068/

相关文章:

python - 如何创建具有多个位置参数的 argparse 互斥组?

python - 使用 ebnf 和空格进行 pyparsing

Python 多处理池 : dynamically set number of processes during execution of tasks

c - 双核 x86 可以处理字节级并发访问(?)还有谁?

python - 有没有理由在 multiprocessing.Lock 上使用 threading.Lock?

Java接口(interface)目录结构?

python - aiohttp ClientSession.get() 方法静默失败 - Python3.7

c++ - 在 C++ 中,为什么循环目录依赖性不好?

language-agnostic - 您的软件开发目录结构是什么?

有条件地迭代列表中项目的 Pythonic 方法