다음 예제에서는 디렉토리를 "둘러보고"모든 파일의 이름을 인쇄하고 모든 디렉토리에서 반복적으로 호출합니다.파일 이름 및 경로 문제가 발생했습니다.
import os
def walk(dir):
for name in os.listdir(dir):
path = os.path.join(dir,name)
if os.path.isfile(path):
print path
else:
walk1(path)
os.path.join` takes a directory and a file name and joins them into a complete path.
내 운동 : 도보 그래서 대신 파일의 이름을 인쇄 수정, 그것은 이름의 목록을 반환합니다.
누군가이 기능이 한 줄에 무엇을하는지 설명 할 수 있습니까? 나는 좋은 생각을 가지고있다. 그러나 그것이 줄에 도착할 때 : else: walk(path)
, 그게 무슨 일을하는지 아무런 설명이 없기 때문에 나를 버린다.
def walk1(dir):
res = []
for name in os.listdir(dir):
path = os.path.join(dir,name)
if os.path.isfile(path):
res.append(path)
else:
walk1(path)
return res
내 출력이 단지 단순한 몇 많은 출력 선에서 갔다 :이 연습, 나는 목록으로 변경하기 위해 생각할 수있는 유일한 방법입니다. 이 작업이 올바르게 수행 되었습니까?
또한 다음 연습에서는 _os_ _ _ 내 함수를 talk_walk_라고합니다. 그러나이 문서를 읽으려면; 주어진 디렉토리와 하위 디렉토리에있는 파일의 이름을 출력해야합니다. 그걸 정확하게 해석한다면 res.extend가되는 것도 아닌가? –