AzureML 列出大量文件

AzureML list huge amount of files

我在 AzureML 笔记本中有一个目录,其中有 30 万个文件,需要列出它们的名称。 下面的方法有效,但需要 1.5 小时才能执行:

from os import listdir
from os.path import isfile, join
mypath = "./temp/"
docsOnDisk = [f for f in listdir(mypath) if isfile(join(mypath, f))]

快速列出这些文件的 azure 方法是什么? (笔记本和此目录都在 FileShare 中)。

我也知道下面的方法会带来一些好处,但仍然不是这样做的好方法。

docsOnDisk = [f.name for f in scandir(mypath) ] # shall be 2-20x faster

尝试使用 glob 模块和过滤器方法而不是列表理解。

import glob
from os.path import isfile
mypath = "./temp/*"
docsOnDisk = glob.glob(mypath)
verified_docsOnDisk = list(filter(lambda x:isfile(x), docsOnDisk))

glob 应该只提供现有文件。不需要使用 isfile() 来验证它们。但是如果你需要尝试一下,你仍然可以使用过滤器方法而不是列表理解。要跳过验证,您可以在最后一行评论。