【问题标题】:Why am I getting the error: "FileExistsError: [WinError 183] Cannot create a file when that file already exists"?为什么我会收到错误消息:“FileExistsError: [WinError 183] 当文件已存在时无法创建文件”?
【发布时间】:2019-06-26 17:03:35
【问题描述】:

如果我的脚本创建了一个文件夹,为什么会出现错误?我在 Windows 7 上使用 Python。 错误:

FileExistsError: [WinError 183] 当文件已存在时无法创建文件:[相关文件或文件夹的路径]

问题是文件和文件夹不存在。

【问题讨论】:

  • 显然已经存在具有给定名称的文件或目录。对此还有什么可以说的?
  • 如果您一次又一次地运行脚本,它会一次又一次地创建文件夹,并且不允许保留两个同名文件夹。所以那是你的错误。如果要再次创建,则需要为不同的运行实例保留不同的文件夹名称。
  • @ErykSun 问题是文件夹和文件不存在。但它已经不有趣了)我解决了。谢谢)

标签: python windows


【解决方案1】:

正如 cmets 所指出的,该文件夹已经存在。您似乎认为尝试创建一个已经存在的文件夹应该什么都不做。但这不是 Windows 的看法。

为避免出现错误消息,请先检查文件夹是否存在。在创建文件夹的代码之前,执行

if not os.path.exists("name of folder"):

【讨论】:

  • @SantaClaus 如果答案对您有用,请接受。
  • 但是如果我只想覆盖它呢?
  • 您不能用文件覆盖文件夹。而且我不确定用另一个文件夹覆盖一个文件夹可能意味着什么。 .
  • 创建一个内容不同但名称相同的文件夹
  • 创建内容不同但名称相同的文件夹的两种方法: (1) 使用shutil.rmtree() 删除整个文件夹及其内容,然后创建所需的新文件夹。 (2) 删除文件夹的原始内容,将文件放入(现在为空的)原始文件夹中。
【解决方案2】:

我刚刚遇到了同样的问题。该线程帮助我解决了问题,但以下澄清可能对某人有所帮助:

对我来说,误解来自shutil.copytree(source, destination, symlinks, ignore)

我读到destination 是我复制的树将去的地方。实际上,它会创建该位置,然后将树复制到那里。所以如果你的目标目录已经存在,就像我的一样,你会得到错误。

希望对某人有所帮助。

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 2022-07-06
    • 2021-09-29
    • 2022-12-16
    • 2020-04-12
    • 2021-11-19
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多