2011-04-12 9 views

답변

13

당신은 현재 디렉토리의 내용을 나열 os.listdir(".")을 사용할 수 있습니다 (".") : 당신은 파이썬 목록으로 전체 목록을 원하는 경우 목록을 사용

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

이해 :

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

왜 os.chdir입니까? 'glob.glob (r'c : \ mydir \ *. txt ')를 고려해보십시오. –

+0

@ John Machin : 절대적으로 사실입니다. 그렇게하는 또 다른 방법입니다. –

+1

그것은 또한 현재 작업 감독자 중 한 명을 변경하는 불필요한 비경쟁적인 부작용없이 그것을하는 방법입니다. –

2
import fnmatch 
import os 

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

은 함수에서만 사용되지 않습니다? – kurumi

0

현재 디렉토리 만 있으면 , os.listdir을 사용하십시오.

>>> 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 

디렉토리의 내용을 재귀 적으로 가져와야하는 경우 os.walk를 사용할 수도 있습니다. os.walk.에 대한 파이썬 문서를 참조하십시오.

관련 문제