我编写了一个脚本,以递归方式使用包含空格或特殊字符的名称重命名目录:
import os
import re
import pdb
def renameInvalid(root):
print("root is: " + root)
for f in os.listdir(root):
if os.path.isdir(f):
old = f
f = f.replace(" ", "_")
f = re.sub(r'[^a-zA-Z0-9-_]', '',f)
if old != f:
print(root + " na substitutie")
os.rename(old,f)
print(root + " na hernoemen")
print("renamed " + old + " to " + f )
#pdb.set_trace()
f = '/' + f
pad = root + f
renameInvalid(str(pad))
mountpunt = os.getcwd()
renameInvalid(mountpunt)
可以通过创建两个名称包含空格的目录来测试此脚本。将其中一个目录放在另一个目录中,然后从第一个目录中运行脚本。脚本重命名第一个目录,但在isdir(f)上生成一个OSError。 有人知道这里有什么问题吗?在
谨致问候
我找到了答案(感谢timbaileyjones的解决方案)。在
如果他们只知道他们在做什么。它用空格或特殊字符重命名文件名中的所有文件夹和文件。在
谨致问候
相关问题 更多 >
编程相关推荐