python重命名文件时找不到文件
我正在尝试写一个脚本,这个脚本可以遍历当前工作目录及其所有子目录,并且修改文件名。以下是我的代码:
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()函数得到的,所以这个文件确实存在。
查看文件时,我发现每次在崩溃之前,它都能正常工作一次。
有没有人能帮帮我?我之前有一个不同的脚本,它只在单个目录中工作,但我需要它也能在子目录中运行。
1 个回答
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))