2017-10-05 28 views
1

我正在使用python重命名以二进制文件形式存在但实际为图像的文件。所以我需要将它们重命名为.jpg格式。我使用os.rename()但得到错误:使用os.rename重命名文件时出错()

Traceback (most recent call last): 
    File "addext.py", line 8, in <module> 
    os.rename(filename, filename + '.jpg') 
OSError: [Errno 2] No such file or directory 

这是我的代码。

import os 

for filename in os.listdir('/home/gpuuser/Aditya_Nigam/lum2/'): 
    # print(filename + '.jpg') 
    # k = str(filename) 
    # print k 
    # k = filename + '.jpg' 
    os.rename(filename, filename + '.jpg') 

print('Done') 
+0

尝试在os.rename中添加带有文件名的路径 – akp

+0

学习使用调试器,它将有助于 – donkopotamus

回答

2

os.listdir只返回文件名列表没有他们的绝对路径,并os.rename将尝试从当前目录中查找一个文件名,除非给出一个绝对路径。基本上,原来的代码只能在与os.listdir所调用的目录相同的目录下执行。

考虑执行下列操作:

import os 
from os.path import join 

path = '/home/gpuuser/Aditya_Nigam/lum2/' 
for filename in os.listdir(path): 
    os.rename(join(path, filename), join(path, filename) + '.jpg') 

os.path.join方法将在一个平台无关的方式与文件名安全连接的路径在一起。