在Python中更改文件夹名称
我需要一个超级简单的脚本,用来更改当前文件夹下所有子文件夹的名字。
为了更好理解,这里有个小例子。
我在我的音乐文件夹里,想把所有子文件夹的名字改成这是一个示例子路径:
C:/我的音乐/这是一个示例_- 子路径
C:/我的音乐/这是一个示例_- 子路径1
C:/我的音乐/这是一个示例_- 子路径2
我想把它们改成:
C:/我的音乐/这是 - 一个示例 - 子路径
C:/我的音乐/这是 - 一个示例 - 子路径1
C:/我的音乐/这是 - 一个示例 - 子路径2
1 个回答
7
import os
import os.path
for (dirpath, dirnames, filenames) in os.walk('C:/My Music/'):
for idx in range(len(dirnames)):
newname = dirnames[idx].replace('_', ' ')
os.rename(os.path.join(dirpath, dirnames[idx]), os.path.join(dirpath, newname))
dirnames[idx] = newname
这里稍微解释一下。这段代码使用 os.walk
来遍历所有的子目录。不过,因为你在遍历目录的时候 改变了目录的名字,所以你需要更新一下要遍历的目录名称。因此,这段代码 (1) 首先重命名了目录,然后 (2) 更新了列表,以便它可以遍历新命名的目录。