我需要在给定的根目录下创建文件路径列表/列表, 当我希望这个目录下的文件数量达到数千万时。
这样做有什么好方法?
我目前运行的是运行os.walk多线程的python脚本。
有什么更好的方法来实现我的需求?
应该注意的是,它是一个安装了nfs的驱动器。
答案 0 :(得分:0)
似乎os.walk是生成函数:
>>> import os
>>> os.walk(".")
<generator object walk at 0x100f32f00>
是什么让它成为你案件的好候选人。
多线程解决方案可能不会产生性能优势,因此我建议将其转换为某些better concurrent python library(如内置multiprocessing)。
生成进程的拆分作业算法可能是系统中最关键的部分,应该仔细调整。
由于目录位于远程系统上,因此可以更快地在远程系统上运行脚本,并使远程应用程序声音也合理。
像@javadeveloper建议的那样,你也可以测试解决方案:调用OS列表目录函数(ls / find / dir)+用shell语言编写脚本(bash,DOS)或者将输出重定向到文件/流+用脚本语言解析它(比如python)。