Проблема в том, что по умолчанию os.walk является нисходящим.Если вы попытаетесь переименовать каталоги при обходе сверху вниз, результаты непредсказуемы.
Попробуйте установить os.walk
, чтобы идти снизу вверх:
for root, subFolders, files in os.walk(rootdir,topdown=False):
Редактировать
Другая проблема, которая у вас есть, listFiles()
возвращается, хорошо, файлы не каталоги.
Эта (непроверенная) подпрограмма возвращает каталоги снизу вверх:
def listDirs(dir):
for root, subFolders, files in os.walk(dir, topdown=False):
for folder in subFolders:
yield os.path.join(root,folder)
return