import os
def recursive_walk(source, result):
print()
print(result)
for folderName, subFolders, fileNames in os.walk(source):
for subFolder in subFolders:
# result = result + '/' + subFolder
# recursive_walk(subFolder, result)
print('walk_dir:' + result + '/' + subFolder)
recursive_walk(subFolder, result + '/' + subFolder)
recursive_walk('articles', 'result')
目录如下:
程序运行结果为:
result
walk_dir:result/a
result/a
walk_dir:result/b
result/b
说明:
在 recursive_walk 前面部分 ,result 是正常的,而在递归调用前的那一print 语句中 result 存储的是首次调用函数传递的值。
问题出在哪里?
是不是os.walk的原因呢,因为它本身就会一直递进,将深层文件也都列出来。