[python]디렉토리의 내용을 나열하기
이렇게 하려면 필요에 따라 네 가지 방법이 있다.
listdir() 메쏘드는 한 디렉토리 안의 모든 파일을 담은 리스트를 돌려준다:
import
os
for filename in os.listdir(r'c:\windows'):
print filename
fnmatch() 모듈을 사용하면 파일 이름을 여과할 수 있다.
glob 모듈은 listdir()과 fnmatch()를 하나의 모듈 안에 싸넣은 것이다:
import
glob
for filename in glob.glob(r'c:\windows\*.exe'):
print filename
서브디렉토리를 모을 필요가 있다면, os.path.walk()를 사용하자:
import
os.path
def processDirectory ( args, dirname, filenames ):
print 'Directory',dirname
for filename in filenames:
print ' File',filename
os.path.walk(r'c:\windows', processDirectory, None )
os.path.walk()는 역호출과 함께 작동한다: processDirectory()는 디렉토리를 만날 때마다 호출된다.
dirname에는 디렉토리의 경로가 담긴다.
filenames에는 이 디렉토리 안에 있는 파일이름들의 리스트가 담긴다.
os.walk()도 사용할 수 있는데, 이 메쏘드는 비-재귀적으로 작동하며 약간 더 이해하기가 쉽다.
import
os
for dirpath, dirnames, filenames in os.walk('c:\\winnt'):
print 'Directory', dirpath
for filename in filenames:
print ' File', filename