2014-04-23 86 views
1

我試圖散裝在一個目錄重命名文件給「錯誤2」

if len(self.toLoc.get()) == 0: 
    searchRev = "_R" + newRev 
    for filename in os.listdir(App.pdfDir): 
     sep = searchesri 
     rest = filename.split(sep, 1)[0] + searchRev 
     os.rename(filename, rest) 
else: 
    searchRev = "_R" + newRev + fromLocation + toLocation 
    print searchRev 

重命名一些PDF時,我運行它,它給我的錯誤

File "F:\TOOLS\PythonTools\VCR.py", line 411, in renameMaps 
    os.rename(filename, rest) 
WindowsError: [Error 2] The system cannot find the file specified 

我可以打印文件名在for循環中,並通過...

+1

我認爲你需要提供完整路徑的文件。 – hjpotter92

+1

'os.path.join'是你的朋友。 – msvalkon

回答

2

os.rename要求完整路徑的文件,但os.listdir只返回它們的名稱。

您可以使用os.path.join做出完整路徑是os.rename要求:

os.rename(os.path.join(App.pdfDir, filename), rest) 
+0

現在讓我們更有意義。感謝幫助的人,感謝它。 – unknownid

+0

討厭成爲麻煩,但任何想法爲什麼它給我一個錯誤WindowsError:[錯誤183]當該文件已存在不能創建一個文件?當我打印時,我得到 ('F:/ Jobs2014 \\ 07510 \\ PDF \\ OFFICE \\ 14075010RM_R0.pdf','14075010RM_R0_5-5-5-5') 因此它們的文件是不同的......? – unknownid

+1

在嘗試將文件重命名爲已存在的文件時,在'Windows os.rename'上引發錯誤。你可以通過使用'import shutil; shutil.move(src,dest)'而不是'os.rename(src,dest)'。 – unutbu