If I'd like to create a list of all .xls files, I usually use
rdir=r"d:\temp"
flist=[os.path.join(rdir,fil) for fil in os.listdir(rdir) if fil.endswith(".xls")]
print flist
However, I recently saw an alternative to this, which is
rdir=r"d:\temp"
import glob
flist=glob.glob(os.path.join(rdir,"*.xls"))
print flist
Which of these two methods is to be preferred and why? Or are they considered equally (un)sound?
listdir is quickest of three. And glog. glob is still quicker than os.
scandir() is a directory iteration function like os. listdir(), except that instead of returning a list of bare filenames, it yields DirEntry objects that include file type and stat information along with the name. Using scandir() increases the speed of os.
Does OS Listdir go in order? By default, the list of files returned by os. listdir() is in arbitrary order.
The Python os. listdir() method returns a list of every file and folder in a directory. os. walk() function returns a list of every file in an entire file tree.
Both are fine. Also consider os.path.walk
if you actually want to do something with that list (rather then building the list for its own sake).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With