2017-08-26 39 views
0

這裏是我的代碼:如何解決「沒有這樣的文件或目錄」與Python os.rename模塊

file_list = os.listdir("/home/vanessa/prank") 

    def rename_files(): 
     # current_dir = os.getcwd() 

     for file_name in file_list: 
      os.rename(file_name, file_name.translate(None, "0,1,2,3,4,5,6,7,8,9")) 


rename_files() 

當我跑,我得到

os.rename(file_name, file_name.translate(None, "0,1,2,3,4,5,6,7,8,9")) OSError: [Errno 2] No such file or directory

回答

1

您應該指定文件的完整路徑,而不僅僅是相對路徑。您可以通過撥打os.getcwd並將結果加入尾部os.path.join來完成此操作。

def rename_files(): 
    root = "/home/vanessa/prank" 

    for file_name in file_list: 
     os.rename(os.path.join(root, file_name), 
        os.path.join(root, file_name.translate(None, 
                "0,1,2,3,4,5,6,7,8,9"))) 
-2

嘗試絕對路徑,而不是相對路徑

file_list = os.listdir("/home/vanessa/prank") 

file_list = os.listdir("C:/home/vanessa/prank") 
+1

OP顯然在* Nix上運行,這不會做任何事情。 –

+0

我使用的是Ubuntu linux,是「C」還適用嗎? – Vanessa

+1

@Vanessa不,它肯定不會。 –

0

os.listdir()只返回文件的名稱,不返回路徑。添加文件的路徑。

+0

我不明白,請問@akp – Vanessa

+0

怎麼樣。 os.rename(「/ home/vanessa/prank」+ str(file_name),file_name.translate(None,「0,1,2,3,4,5,6,7,8,9」)) OSError :[Errno 2]沒有這樣的文件或目錄 – Vanessa

+1

@Vanessa有3個答案,其中只有一個已被upvoted。你爲什麼無視它? –

相關問題