Java 当需要数千万个文件时,递归地收集给定根目录的路径
我需要创建给定根目录下的文件路径列表, 当我预计此目录下的文件数将达到数千万时 这样做的好方法和有效方法是什么 我目前运行的python脚本运行os.walk多线程 有没有更好的方法来实现我的需求 应该注意的是,direcotry是安装在nfs上的驱动器。这似乎是生成器的功能:Java 当需要数千万个文件时,递归地收集给定根目录的路径,java,python,Java,Python,我需要创建给定根目录下的文件路径列表, 当我预计此目录下的文件数将达到数千万时 这样做的好方法和有效方法是什么 我目前运行的python脚本运行os.walk多线程 有没有更好的方法来实现我的需求 应该注意的是,direcotry是安装在nfs上的驱动器。这似乎是生成器的功能: >>> import os >>> os.walk(".") <generator object walk at 0x100f32f00> 导入操作系统 >>>os.wa
>>> import os
>>> os.walk(".")
<generator object walk at 0x100f32f00>
导入操作系统
>>>os.walk(“.”)
在你的情况下,是什么使它成为一个好的候选人
多线程解决方案可能不会带来性能方面的好处,所以我建议将其转换为一些(比如内置的)
生成进程的拆分作业算法可能是系统中最关键的部分,应该仔细调整
由于目录位于远程系统上,因此在远程系统上运行脚本肯定会更快,并且使远程应用程序听起来也更合理
就像@javadeveloper建议的那样,您也可以测试解决方案:调用OS列表目录函数(ls/find/dir)+用shell语言(bash、DOS)编写脚本,或者将输出重定向到file/stream,并用脚本语言(如python)对其进行解析。在Linux或UNIX上,您可以使用
find
命令。只需调用:查找您的\u根目录