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