0

我需要在给定的根目录下创建一个文件路径列表/列表,当我预计该目录下的文件数量为数千万时。

什么是一个好的和有效的方法来做到这一点?

我目前运行一个运行 os.walk 多线程的 python 脚本。

有什么更好的方法来实现我所需要的吗?

需要注意的是,该目录是一个安装了 nfs 的驱动器。

4

1 回答 1

0

似乎os.walk是生成器函数:

>>> import os
>>> os.walk(".")
<generator object walk at 0x100f32f00>

是什么使它成为您的理想人选。

多线程解决方案可能不会产生性能优势,因此我建议将其转换为一些更好的并发 python 库(如内置multiprocessing)。

产生进程的拆分作业算法可能是系统中最关键的部分,应该仔细调整。

由于目录位于远程系统上,因此在远程系统上运行脚本肯定会更快,并且使远程应用程序听起来也很合理。

就像@javadeveloper建议的那样,您还可以测试解决方案:调用操作系统列表目录函数(ls/find/dir)+用shell语言(bash,DOS)编写脚本或将输出重定向到文件/流+用脚本语言解析它(如python )。

于 2013-05-12T17:29:32.530 回答