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

时间:2012-11-30 10:39:40

标签: python list glob

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

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

但是,我最近看到了另一种选择,即

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

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

2 个答案:

答案 0 :(得分:5)

两者都很好。如果您确实想要对该列表执行某些操作(而不是为了它自己而构建列表),也请考虑os.path.walk

答案 1 :(得分:4)

我个人选择glob.glob,因为它更清楚。 但是,因为它是listdir的包装器,所以它们都完成了工作。