0

scandir は listdir の改良版であると読んだので、これを使用して、おそらく大きなディレクトリ コンテンツのリストを最も効率的な方法で渡したいと考えました。

ファイルとフォルダーの名前を直接指定する listdir とは異なり、scandir は DirEntry オブジェクト ジェネレーターを出力します。

from scandir import scandir
from os import listdir

path='C:/'

listdir(path)                    # outputs ['$Recycle.Bin',  .. , 'Windows']
list(scandir(path))              # outputs [<DirEntry '$Recycle.Bin'>,..   ]

scandir で名前だけを取得するには、現在次を使用しています。

list(names.name for names in scandir(path))   #outputs ['$Recycle.Bin', .. ] 

そして、私が望む適切な関数で名前をアンパックするために、私は渡します

*(names.name for names in scandir(path))

それぞれの関数引数として、 listdir を使用すると渡すことができます

*listdir(path)

引数として。

その scandir の使用法は効率的ですか? forループで反復せずに、どうにかして名前を直接抽出できますか?

4

0 に答える 0