LA_*_*LA_ 4 python rename python-2.5
我有如下代码:
temp = os.walk(sys.argv[1])
for root, dirs, files in temp:
for i in dirs:
dir = os.path.join(root,i)
os.rename(dir, dir+"!")
Run Code Online (Sandbox Code Playgroud)
它几乎可以正常工作.但是,一旦重命名了父文件夹,它就无法重命名子文件夹.我怎么能避免这种情况?
将树topdown设置为False,而不是:
temp = os.walk(sys.argv[1], topdown=False)
for root, dirs, files in temp:
for i in dirs:
dir = os.path.join(root,i)
os.rename(dir, dir+"!")
Run Code Online (Sandbox Code Playgroud)
从文档:
如果可选参数自上而下被
True或没有指定,三重用于目录的三元组为任何子目录(目录生成自上而下)的之前产生.如果自上而下的是False,其所有子目录的三元组(目录生成由下而上)后三的目录中生成.
因此,您首先要重命名子目录,并且最后会看到顶级目录,重命名它们将不再影响子目录的查找方式.