我有一个目录是这样的:重命名目录的递归在Python
我遇到的问题是,当使用该功能:
from os import walk
generic_name = "{project_name}"
def rename_project(src):
project_name = raw_input("Name your project: ")
for subdir, dirs, files in walk(src):
rename(subdir, subdir.replace(generic_name, project_name))
在到达第二个文件夹,即{project_name} Planning
的整个目录已被更改。即成为:
,因此它出现在for ... in walk(src):
停止运行。请注意,循环工作正常;我可以打印每个目录和取得的成果:
for subdir, dirs, files in walk(src):
print subdir
产量...
用我有限的Python的知识,我认为,由于目录已经改变,这会导致异常到walk(src)
并且意味着循环被终止。
我该如何解决这个问题,递归循环遍历目录并重命名所有包含{project_name}
的目录?
很多感谢:)
Settting'自上而下= TRUE;没有工作。你会如何建议我使用递归来遍历目录? – discipline
嗯即时通讯只是在自上而下=假的方法,只是一秒;) –
@discipline OK done。它会抛出“OSError:[Errno 16] Device or resource busy”,如果您重命名“。”。至 ”。”但它完全有效^^ - d –