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ループで反復せずに、どうにかして名前を直接抽出できますか?