我正在尝试下面的脚本来重命名文件夹中的所有文件。它工作正常,但是当我试图在文件夹外运行它时。它显示错误。
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' 打印显示文件名称
答案 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)