簡體   English   中英

Python 3:執行 os.rename() 時出錯

[英]Python 3: Error while executing os.rename()

我正在嘗試使用以下代碼重命名文件:

def rename_files(src: str,dst: str, folder_name: str):
    filepath = f"temp/{src}"
    filepath = filepath.replace("/", "\\")
    cwd = os.getcwd()
    old_path = os.path.join(cwd, filepath)
    newfilepath = f"folder/{folder_name}/{dst}.pdf"
    newfilepath = newfilepath.replace("/", "\\")
    new_path = os.path.join(cwd, newfilepath)
    if os.path.exists(old_path):
        os.rename(old_path, new_path)
    else:
        print("File does not exist")

在執行它時,我收到以下錯誤:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'E:\\Repos\\GitHub\\source\\t2dm\\temp\\oldfilename.pdf' -> 'E:\\Repos\\GitHub\\source\\t2dm\\folder\\subfolder\\newfilename.pdf'

代碼正在從以下位置執行:

E:\Repos\GitHub\source\t2dm\

文件oldfilename.pdf存在於E:\Repos\GitHub\source\t2dm\temp\中, folder\subfolder也存在。

該怎么做才能解決這個問題?

編輯:添加了有關folder\subfolder的更多信息。

如果新文件夾folder_name不存在, os.rename不會創建它。

您可以執行以下操作之一:

  1. 在代碼的那一行中使用os.renames() (注意s ),而不是os.rename - 如果它們不存在,它將為目標創建目錄。

  2. 使用os.makedirs()為子文件夾制作目錄樹。

如果您不創建多個目錄樹,那么選項 (1) 非常適合您。

暫無
暫無

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

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