마찬가지로 os.path.isfile은 경로가 파일인지 검사한다.
os.listdir은 해당 디렉터리의 파일과 다른 디렉터리의 목록을 반환한다.
>>> os.listdir(cwd)
['music', 'photos', 'memo.txt']
이들 함수를 설명하기 위해, 이번 예제는 디렉터리를 “걷고(walk)”, 모든 파일의 이름을 출력하고, 모든 디렉터리에 대해 자신을 재귀적으로 호출한다.
def walk(dirname):
for name in os.listdir(dirname):
path = os.path.join(dirname, name)
if os.path.isfile(path):
print(path)
else:
walk(path)
os.path.join은 디렉터리와 파일을 받아서 온전한 경로로 결합(join)한다.
os 모듈에는 여기서 정의한 함수와 비슷하지만, 더 기능이 많은 walk 함수가 있다. 연습삼아 파이썬 공식 문서를 읽고, os 모듈의 walk 함수를 사용해 주어진 디렉터리와 하위 디렉터리의 파일 이름을 출력하라. 내가 작성한 해법은 http://thinkpython2.com/code/walk.py에서 받을 수 있다.