2011-04-12 27 views

cevap

13

Geçerli dizinin içeriğini listelemek için os.listdir(".") kullanabilirsiniz (""): Bir Python listesi olarak tüm listeyi isterseniz, bir listesini kullanmak

for name in os.listdir("."): 
    if name.endswith(".txt"): 
     print(name) 

anlama:

a = [name for name in os.listdir(".") if name.endswith(".txt")] 
6
import os 
import glob 

os.chdir('c:/mydir') 
files = glob.glob('*.txt') 
+5

için python belgelerine bakın Neden os.chdir? Glob.glob (r'c: \ mydir \ *. Txt ') ' –

+0

@John Machin: kesinlikle doğru, bunu yapmanın başka bir yolu. –

+1

Ayrıca, şu andaki çalışma yönetmeninin [y | ies] değişiminin gereksiz bir yan etkisi olmadan, bunu yapmanın bir yolu. –

2
import fnmatch 
import os 

return [file for file in os.listdir('.') if fnmatch.fnmatch(file, '*.txt')] 
+0

sadece bir işlevde kullanılmaz mı? – kurumi

0

sadece geçerli dizin gerekiyorsa , os.listdir kullanın.

>>> os.listdir('.') # get the files/directories 
>>> [os.path.abspath(x) for x in os.listdir('.')] # gets the absolute paths 
>>> [x for x in os.listdir('.') if os.path.isfile(x)] # only files 
>>> [x for x in os.listdir('.') if x.endswith('.txt')] # files ending in .txt only 

Ayrıca, bir dizinin içeriğini yinelemeli olarak almanız gerekirse, os.walk'u da kullanabilirsiniz. os.walk.

İlgili konular