glob.glob(...)应该优先于os.listdir(...)还是相反?

Rub*_*ert 8 python glob list

如果我想创建所有.xls文件的列表,我通常会使用

rdir=r"d:\temp"
flist=[os.path.join(rdir,fil) for fil in os.listdir(rdir) if fil.endswith(".xls")]
print flist
Run Code Online (Sandbox Code Playgroud)

但是,我最近看到了一种替代方案,即

rdir=r"d:\temp"
import glob
flist=glob.glob(os.path.join(rdir,"*.xls"))
print flist
Run Code Online (Sandbox Code Playgroud)

这两种方法中的哪一种是首选的,为什么?或者他们被认为是同等(不)声音?

abb*_*bot 5

两者都很好。还要考虑os.path.walk您是否真的想对该列表进行某些操作(而不是出于自身原因构建列表)。

  • 对于 python 3,它是 os.walk (2认同)

Bal*_*rol 5

我个人会选择glob.glob,这很清楚。但是,由于这是一个包装器listdir,因此他们俩都能完成工作。