저는 파이썬 (강력한 C# 배경)을 사용하는 데있어 매우 익숙하므로 함수에서 기대하는 결과를 여전히 배우고 있습니다. 디렉토리 구조를 빌려줄 재귀 함수를 만드는 이상한 결과를 얻고 있습니다. os.walk() 함수를 사용하고 있는데 일단 빈 공간을 찾으면 '디렉토리'에 대한 반환 결과가 지워지지 않는 것 같습니다. 나는 "여기os.walk()를 사용하여 파이썬에서 재귀 문제가 발생했습니다.
def CheckSubFolder(folder):
print "Checking folders in : " + folder;
for (root, directories, files) in os.walk(folder):
for folder2 in directories:
print folder2;
for folder2 in directories:
CheckSubFolder(folder + "\\" + folder2);
return;
# Code Entry
InFolder = sys.argv[1];
CheckSubFolder(InFolder);
sys.exit();
2.7 내가 사용 예제 디렉토리 구조 내 IDE 파이썬으로 Eclipse를 사용하고 있습니다 여기에
State
-> 1
-> 2
-> 3
-> 4
-> 5
-> 6
-> 7
내가되고 반환있어 결과를 다음과 같습니다.
Checking folders in : \\State
1
Checking folders in : \\State\1
2
3
Checking folders in : \\State\1\2
Checking folders in : \\State\1\3
4
5
Checking folders in : \\State\1\3\4
Checking folders in : \\State\1\3\5
6
7
Checking folders in : \\State\1\3\5\6
Checking folders in : \\State\1\3\5\7
6
7
Checking folders in : \\State\1\3\6
Checking folders in : \\State\1\3\7
4
5
Checking folders in : \\State\1\4
Checking folders in : \\State\1\5
6
7
Checking folders in : \\State\1\6
Checking folders in : \\State\1\7
'os.walk' 사용자를 재귀 적으로 시도 할 필요가 없습니다. 이미 전체 디렉토리 구조를 살펴 둡니다. – sberry