2012-10-26 1 views
1

os.walk()를 사용하여 디렉토리를 탐색하려고합니다. 다음과 같이 내 현재의 구현입니다 : "경로"를파이썬이 디렉토리를 통해 재귀 함

print(".:") 
for dirname, dirnames, filenames in os.walk(path): 
    for filename in filenames: 
     print(os.path.join(dirname, filename)) 
    print() 
    for subdirname in dirnames: 
     print(os.path.join(dirname, subdirname) + ":") 

나는 다음과 같은 출력을 얻을 :

.: 
./File5.py 
./File 3.py 
./File 1.py 

./directory 2: 
./directory 4: 
./Test Directory: 
./directory 2/player_career.csv 
./directory 2/File2.py 

./directory 4/test.txt 
./directory 4/Homework4.py 

./directory 4/__pycache__: 
./directory 4/__pycache__/File4.cpython-32.pyc 


./Test Directory/Test 3: 
./Test Directory/Test 2: 
./Test Directory/Test 3/ttt 

./Test Directory/Test 2/Untitled Document 2 
./Test Directory/Test 2/Untitled Document 

./Test Directory/Test 2/Untitled Folder: 
./Test Directory/Test 2/Untitled Folder/jjj 

내가 찾고 있어요 출력입니다 :

.: 
./File5.py 
./File 3.py 
./File 1.py 

./directory 2: 

./directory 2/player_career.csv 
./directory 2/File2.py 

./directory 4: 

./directory 4/test.txt 
./directory 4/Homework4.py 

./directory 4/__pycache__: 

./directory 4/__pycache__/File4.cpython-32.pyc 

./Test Directory: 

./Test Directory/Test 2: 

./Test Directory/Test 2/Untitled Document 
./Test Directory/Test 2/Untitled Document 2 

./Test Directory/Test 2/Untitled Folder: 

./Test Directory/Test 2/Untitled Folder/jjj 

./Test Directory/Test 3: 

./Test Directory/Test 3/ttt 

하는 경우 이 재귀 적으로 일을하고 있었지만 찾을 수있는 각 하위 디렉토리에 대한 함수를 호출 할 수 있었지만 os.walk()를 사용하여 우아한 방법을 찾는 데 문제가있었습니다.

내 질문 :

답변

8

즉시 하위 디렉토리를 인쇄하는 대신 디렉터리에 실제로있을 때 그들을 밖으로 인쇄하지 마십시오 os.walk()를 사용하여 위의 출력을 얻을 수있는 방법.

예 :

for dirname, dirnames, filenames in os.walk(path): 
    print() 
    print(dirname + ":") 
    for filename in filenames: 
     print(os.path.join(dirname, filename)) 

방법 당신이 원하는 주문을 당신에게 제공하지 않습니다 즉시 dirnames에 그들을 얻을 때 디렉토리 이름을 모두 인쇄 할 os.walk 작품.

+0

이렇게하면 구현하고자하는 것이 훨씬 더 의미가 있습니다. 고맙습니다. 나는 os.walk()의 ​​내부 동작을 오해하고있었습니다. –