文件未找到错误:[WinError 2]系统找不到指定的文件:

18
import os

def rename(directory):
    for name in os.listdir(directory):
        print(name)
        os.rename(name,"0"+name)

        
path = input("Enter the file path")
rename(path)

我想将某个目录中的每个文件重命名,以便在文件名前面添加0,但是当我尝试运行代码时,出现了以下错误:

(FileNotFoundError: [WinError 2] 系统找不到指定的文件: '0.jpg' -> '00.jpg')

我确定那里有一个名为0.jpg的文件,但我不知道问题出在哪里。

3个回答

20

按照原文,你正在工作目录中寻找名为0.jpg的文件。你需要在传入的目录中查找。

所以改成:

os.rename(os.path.join(directory,name), 
    os.path.join(directory,'0'+name))

2

如果你的终端不在该目录下,就不能使用绝对路径。

因此,你可以按照以下步骤操作:

import os
def rename(directory):
    os.chdir(directory) # Changing to the directory you specified.
    for name in os.listdir(directory):
        print(name)
        os.rename(name,"0"+name)

1
我同意 mechanical_meat的回答,"filename"指的是完整/绝对路径名。以下内容也适用。
os.rename((directory + name), (directory + '0' + name))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接