簡體   English   中英

在 os.rename 中找不到文件錯誤

[英]File not found error in os.rename

我正在嘗試編寫一個程序,根據文件名中指示的各自組將大量文件分類到文件夾中。 我編寫了以下代碼,但是當我運行它時,它給了我一個找不到文件的錯誤,即使文件在給定的路徑中。 如果您能幫助我找出問題所在,我將不勝感激。

import os

old_dir = '/Users/User/Desktop/MyFolder'

for f in os.listdir(old_dir):
    file_name, file_ext = os.path.splitext(f)
    file_name.split('-')

    split_file_name = file_name.split('-')

    new_dir = os.path.join(old_dir,
                           '-'.join(split_file_name[:3]),
                           split_file_name[5],
                           f)

    os.rename(os.path.join(old_dir, f), new_dir)

這是錯誤:

Traceback (most recent call last):
  File "/Users/User/Documents/Sort Files into Folders/Sort Files into Folders.py", line 19, in <module>
    os.rename(os.path.join(old_dir, f), new_dir)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/User/Desktop/MyFolder/AHA35-3_30x1_12-31-7d-g1a1-ArmPro.jpg' -> '/Users/User/Desktop/MyFolder/AHA35-3_30x1_12-31/ArmPro/AHA35-3_30x1_12-31-7d-g1a1-ArmPro.jpg

如果新名稱恰好是不存在的目錄中的文件名,則os.rename不會自動創建新目錄(遞歸)。

要首先創建目錄,您可以(在 Python 3 中)使用:

os.makedirs(dirname, exist_ok=True)

其中 dirname 可以包含子目錄(存在或不存在)。


或者,使用os.renames ,它可以處理新目錄和中間目錄。 從文檔

遞歸目錄或文件重命名功能。 與 rename() 類似,但首先嘗試創建使新路徑名良好所需的任何中間目錄

os.rename 需要路徑,所以它應該看起來像: os.rename(path+old_name, path+new_name)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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