2017-10-05 32 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方法將在一個平臺無關的方式與文件名安全連接的路徑在一起。