[英]Renaming files in Python: No such file or directory
如果我嘗試重命名目錄中的文件,由於某種原因,我會收到錯誤消息。 我認為問題可能是我沒有以正確的格式插入目錄?
附加信息:python 2和linux機器
OSError:[Errno 2]沒有這樣的文件或目錄
盡管它可以打印目錄內容。 我究竟做錯了什么?
import os
for i in os.listdir("/home/fanna/Videos/strange"):
#print str(i)
os.rename(i, i[:-17])
os.rename()
需要您要重命名的文件的完整路徑。 os.listdir
僅返回目錄中的文件名。 嘗試這個
import os
baseDir = "/home/fanna/Videos/strange/"
for i in os.listdir( baseDir ):
os.rename( baseDir + i, baseDir + i[:-17] )
假設有一個文件/home/fanna/Videos/strange/name_of_some_video_file.avi
,並且您正在/home/fanna
運行腳本。
i
是name_of_some_video_file.avi
(文件名,不包括文件的完整路徑)。 所以當你跑步
os.rename(i, i[:-17])
你是說
os.rename("name_of_some_video_file.avi", "name_of_some_video_file.avi"[:-17])
Python不知道這些文件來自/home/fanna/Videos/strange
。 它根據當前工作目錄解析它們,因此它正在尋找/home/fanna/name_of_some_video_file.avi
。
我有點晚了,但是發生的原因是os.listdir
僅列出了該目錄中的項目,但是工作目錄仍然是python腳本所在的位置。
因此,要解決此問題,請添加:
os.chdir(your_directory_here)
就在for循環之前,其中your_directory_here
是用於os.listdir
的目錄。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.