我试图编写一个遍历当前工作目录及其所有子目录并更改文件名的脚本,这是我的代码:
from os import rename, listdir, getcwd, walk
from os.path import isdir, join
for root, dirs, files in walk(getcwd()):
for name in files:
rename(join(root, name), join(root, name.replace("Season ", "S")))
rename(join(root, name), join(root, name.replace("season ", "S")))
rename(join(root, name), join(root, name.replace("Episode ", "E")))
rename(join(root, name), join(root, name.replace("episode ", "E")))
我收到错误说"没有这样的文件或目录",虽然错误包含walk()给出的文件名,所以它是一个实际的文件。
查看文件,我发现每次崩溃之前它都会运行一次。
任何帮助?我有一个不同的脚本做同样的事情,只在一个目录中,但我也需要它在子目录中工作。
答案 0 :(得分:2)
您似乎尝试多次重命名每个文件。重命名一次后,它将没有以前的名称,所以你得到一个“没有这样的文件”。 在对每个文件进行一次重命名之前,您应该对所需名称进行所有修改。
newname = name.replace("Season ", "S")
newname = newname.replace("season ", "S")
newname = newname.replace("Episode ", "E")
newname = newname.replace("episode ", "E")
rename(join(root, name), join(root, newname))