2012-11-30 13 views
5

Jeśli chciałbym utworzyć listę wszystkich plików .xls, ja zwykle korzystamCzy glob.glob (...) powinien być preferowany nad os.listdir (...) lub na odwrót?

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

Jednak Niedawno widziałem alternatywę dla tego, co jest

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

Która z tych dwóch metody powinny być preferowane i dlaczego? Czy są one uważane za równo (nie) dźwięk?

Odpowiedz

3

Obie są w porządku. Rozważ także os.path.walk, jeśli chcesz coś zrobić z tą listą (zamiast budować listę dla niej samej).

+0

dla Pythona 3 to os.walk – poppie

4

Osobiście idę z glob.glob, ponieważ jest bardziej przejrzysty. Jednak ponieważ jest to opakowanie o numerze listdir, oba te zadania wykonują zadanie.

Powiązane problemy