python重命名文件时找不到文件

0 投票
1 回答
656 浏览
提问于 2025-04-20 08:41

我正在尝试写一个脚本,这个脚本可以遍历当前工作目录及其所有子目录,并且修改文件名。以下是我的代码:

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))

撰写回答