簡體   English   中英

在Python中重命名文件:無此類文件或目錄

[英]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運行腳本。

iname_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM