我正在尝试将文件名的一部分替换为所有子目录中文件的另一部分。
我已经在我的脚本所在的当前文件夹中做到了这一点,但我需要它来为所有子文件夹工作。
以下是我用来重命名当前文件夹中文件的代码:
import os
path = os.getcwd()
filenames = os.listdir(path)
for filename in filenames:
os.rename(filename, filename.replace("PART_TO_REPLACE", "NEW_PART"))
以下是我尝试使其适用于文件夹中的所有子目录:
import os
path = "C:/Users/me/Desktop/Python test"
for root,dirname,filename in os.walk(path):
for filename in filenames:
os.rename(filename, filename.replace("PART_TO_REPLACE", "NEW_PART"))
当我运行第二个脚本时,什么都没有发生。我的文件没有重命名。我也没有收到任何错误消息。
My Python Shell弹出窗口显示:
Python 3.8.2 (v3.8.2:7b3ab5921f, Feb 24 2020, 17:52:18)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license()" for more information.
>>>
======= RESTART: /Users/me/Desktop/Python test/Child Rename.py =======
>>>
感谢
试试这个:
for root, dirnames, filenames in os.walk(path):
for filename in filenames:
file = os.path.join(root, filename)
os.rename(file, file.replace("PART_TO_REPLACE", "NEW_PART"))