【发布时间】:2012-01-10 00:19:42
【问题描述】:
我想通过将最后一个字符更改为小写(如果是字母)来递归地重命名目录
我在以前的帖子的帮助下完成了这项工作(抱歉重复发帖而不承认答案)
此代码适用于文件,但我如何使其也适用于目录?
import fnmatch
import os
def listFiles(dir):
rootdir = dir
for root, subFolders, files in os.walk(rootdir):
for file in files:
yield os.path.join(root,file)
return
for f in listFiles(r"N:\Sonstiges\geoserver\IM_Topo\GIS\MAPTILEIMAGES_0\tiles_2"):
if f[-5].isalpha():
os.rename(f,f[:-5]+f[-5].lower() + ".JPG")
print "Renamed " + "---to---" + f[:-5]+f[-5].lower() + ".JPG"
【问题讨论】:
-
请尽量避免在帖子中添加无关的cmets和签名。
-
您可能会遇到的一个问题是,在遍历树时重命名目录可能会导致遍历失败(因为您可能会尝试进入已重命名的目录)。所以你可能想要做的是列出所有需要重命名的目录,并在遍历之后有一个单独的循环来重命名这些目录。