2013-08-19 76 views
0

我需要的所有文件重命名爲'DSC0 + num',所以文件的最終名稱應爲(例如)'DSC02015'不能重命名的所有目錄中的文件

嘗試代碼:

import os 

path = "C:\\images" 
num = 2000 
i=0 
files = os.listdir(path) 
for x in files: 
    old = files[i] 
    new = 'DSC0%d' %(num) 
    os.rename (files[i],new) 
    num +=1 
    i +=1 

我得到這個錯誤:

Traceback <most recent call last): 
File "rename.py", line 10, in <module> 
    os.rename (files[i],new) 
WindowsError: [Error 2] The system cannot find the file specified 

回答

2

你必須先改變到正確的目錄。所以把這個在for -loop面前:

os.chdir(path) 

如果你的Python腳本是在另一個目錄,這將是工作目錄,因爲你只有文件名而不是絕對的文件路徑,文件無法在該工作目錄中解決。更改爲它可以解決您的問題。

作爲一個方面說明,你的循環可能會更簡單一些。這也應該這樣做:

for x in files: 
    new = 'DSC0%d' %(num) 
    os.rename (x, new) 
    num +=1 
0

的問題是,您提供給rename功能的相對路徑,但你可能從不同的位置執行代碼。 您可以使用os.chdir作爲上一個答案來更改當前文件夾。 或者,如果你想留在原來的文件夾,您可以通過這種方式提供完整的路徑:

您需要更改行:

os.rename(files[i],new) 

是:

os.rename(os.path.join(path,files[i]),os.path.join(path,new)) 
相關問題