2013-07-23 122 views
-2

我在寫一個快速腳本這將改變每名擅長位於一個目錄下的文件:重命名Excel文件os.rename()的Python

[...] 
for file_ in os.listdir(path): 
    if 'Analytics Android' in file_: 
     os.rename(file_, 'Android Orders.xlsx') 

但是,我得到一個錯誤:[Error 2] The system cannot find the file specified.不該」 t rename函數將名稱更改爲第二個參數?

+0

你給功能的錯誤路徑。這就是錯誤的含義。 – sashoalm

+1

你的下一個問題是你試圖給所有的新文件命名。 – tdelaney

回答

3

os.listdir沒有給出絕對路徑,而是相對路徑給定路徑列出,所以你仍然必須創建的完整路徑:

for file_ in os.listdir(path): 
    if 'Analytics Android' in file_: 
     os.rename(os.path.join(path, file_), os.path.join(path, 'Android Orders.xlsx')) 
+0

您還需要爲'Android Orders.xlsx'添加路徑,否則它將被移至您當前的工作目錄。 – tdelaney

+0

@tdelaney好的 - 我的壞。 – orlp

2

你必須給文件的絕對路徑。

>>> os.rename(os.path.join(path, file_), 'Android Orders.xlsx')