我跑你的代碼,有以下兩個主要問題:
第一個是,你是不是在你的os.rename
線關閉您的支架。
你有這樣的:
os.rename(str(lijstmetfiles[i]), str("doggy"+str(i))
你缺少一個括號,所以應該是:
os.rename(str(lijstmetfiles[i]), str("doggy"+str(i)))
然而,這可能是一個編輯的問題,從您的帖子在複製你的代碼。
其次,最重要的是,你沒有指定你要重命名的路徑,你只是給出兩個文件名,所以你最有可能得到一個文件未找到錯誤。
您需要利用使用您的目錄和文件名,Python的os.path.join
方法如下面的代碼樣本:
os.rename(
os.path.join(directoryname, str(lijstmetfiles[i])),
os.path.join(directoryname, str("doggy"+str(i)))
)
所以,現在你明確指定的完整路徑是什麼,你的重命名。
另一個要點是,你不需要爲你的文件名轉換爲「str」。例如,即使您的文件名爲5
,從listdir
獲取文件列表仍然會以字符串形式返回。
最後,把他們放在一起,你的代碼應該是這個樣子:
import os
directoryname="C:\\Users\\Ineke\\Documents\\Python Scripts\\images"
lijstmetfiles = os.listdir(directoryname)
print(lijstmetfiles)
for i in range(len(lijstmetfiles)):
os.rename(
os.path.join(directoryname, lijstmetfiles[i]),
os.path.join(directoryname, "doggy"+str(i))
)
我測試了我的結束,它應該工作。
這是關於os模塊的文檔。看看它獲得與文件系統玩的時候什麼是提供給您進一步的理解:
的Python 2:https://docs.python.org/2/library/os.html
的Python 3:https://docs.python.org/3/library/os.html
如果你張貼明顯的例子這將是有益的輸入名稱和預期的輸出名稱。 – wflynny
那麼你現在的代碼實際上做了什麼*?! – jonrsharpe
另外:'對於範圍內的我(len(LIST))'是[* code smell *](https://en.wikipedia.org/wiki/Code_smell)或[*反模式*](https:/ /en.wikipedia.org/wiki/Anti-pattern)。它通常可以用'for i in LIST'取代。 –