Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
尝试重命名文件时未找到python文件_Python_File - Fatal编程技术网

尝试重命名文件时未找到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)