尝试重命名文件时未找到python文件
我正在尝试编写一个脚本,它将遍历当前工作目录及其所有子目录并更改文件名,下面是我的代码:尝试重命名文件时未找到python文件,python,file,Python,File,我正在尝试编写一个脚本,它将遍历当前工作目录及其所有子目录并更改文件名,下面是我的代码: 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"
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()给出的文件名,所以它是一个实际的文件
通过查看文件,我发现它每次崩溃前都能工作一次
有什么帮助吗?我有一个不同的脚本可以做同样的事情,只在一个目录中,但我也需要它在子目录中工作 看起来您试图多次重命名每个文件。重命名一次后,它将不再具有以前的名称,因此您会得到一个“没有这样的文件”。 在对每个文件进行一次重命名之前,您可能应该对预期的名称进行所有修改
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))
如果一个文件包含两个单词,当它第二次尝试重命名时会发生什么?我有一个名为“第1季第2集3.txt”的文件,它将其重命名为“Sepisode 1 2 3.txt”。这已经不重要了,因为赫尔伍德的回答解决了这个问题。这就是问题所在。
new\u name=re.sub('season','S',re.sub('season','E',name,re.I),re.I)