【发布时间】:2021-10-20 22:32:17
【问题描述】:
我使用以下代码替换目录中的文件/文件夹名称。
old = abc
new = def
for path, subdirs, files in os.walk(folder_path):
for name in files:
if old in name:
file_path = os.path.join(path, name)
new_name = os.path.join(path, name.replace(old, new))
os.rename(file_path, new_name)
这可行,但是,我有一个名为 abc.files os.walk 的文件夹没有看到此文件夹,我该如何修复代码,以便将 abc.files 更改为 def.files ?
【问题讨论】:
-
如果
abc.files是一个子目录,那么它将在subdirs列表中,而不是files列表中。你只是在迭代files。 -
另外,
new = def是一个错误。你的意思是new = "def"? -
如果你在走的时候重命名目录,你应该使用
topdown=False,这样它会在重命名之前进入子目录。