2012-11-30 52 views
5

Nếu tôi muốn tạo ra một danh sách tất cả các file .xls, tôi thường sử dụngNên glob.glob (...) được ưa thích hơn os.listdir (...) hoặc cách khác xung quanh?

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

Tuy nhiên, tôi vừa nhìn thấy một sự thay thế này, đó là

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

nào trong hai phương pháp được ưa thích và tại sao? Hay họ được coi là bằng nhau (un) âm thanh?

Trả lời

3

Cả hai đều ổn. Cũng xem xét os.path.walk nếu bạn thực sự muốn làm một cái gì đó với danh sách đó (thay vì sau đó xây dựng danh sách vì lợi ích riêng của nó).

+0

cho python 3 là os.walk – poppie

4

Tôi đích thân đi với glob.glob, vì nó rõ ràng hơn. Tuy nhiên, vì đó là một trình bao bọc xung quanh listdir, cả hai đều hoàn thành công việc.

Các vấn đề liên quan