繁体   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