尝试重命名文件夹中的所有文件

时间:2016-07-19 11:38:35

标签: python python-3.x

我正在尝试下面的脚本来重命名文件夹中的所有文件。它工作正常,但是当我试图在文件夹外运行它时。它显示错误。

import os

path=os.getcwd()
path=os.path.join(path,'it')
filenames = os.listdir(path)
i=0
for filename in filenames:
    os.rename(filename, "%d.jpg"%i)
    i=i+1

'it'是文件所在文件夹的名称。 错误:FileNotFoundError:[Errno 2]没有这样的文件或目录:'0.jpg' - > '0.jpg' 打印显示文件名称

2 个答案:

答案 0 :(得分:4)

执行os.listdir(path)时,您会获得文件夹中文件的文件名,但不会获得这些文件的完整路径。当你致电os.rename时,你需要文件的路径,而不仅仅是文件名。

您可以使用os.path.join将文件名加入其父文件夹的路径。 例如。 os.path.join(path, file)

这样的事可能有用:

for filename in filenames:
    old = os.path.join(path, filename)
    new = os.path.join(path, "%d.jpg"%i)
    os.rename(old, new)
    i=i+1

答案 1 :(得分:0)

您需要提及档案的完整或相对路径。

在这种情况下,它应该是

path + '/' + filename

或更一般地说,

newpath = os.path.join(path, filename)