【问题标题】:os.makedirs throws exception even though directory doesn't exist即使目录不存在,os.makedirs 也会引发异常
【发布时间】:2018-03-31 10:11:16
【问题描述】:

我正在为一个项目使用套接字在 python 中编写一个 FTP 服务器。我在执行创建新目录的命令时遇到问题。

我的代码如下:path是新目录的名称,self.dir是当前工作目录。

newDirectory = os.path.join(self.dir, path)

try:
    os.mkdir(newDirectory)
except Exception as e:
    print(e)
    return

我得到这个错误:

[WinError 183] Cannot create a file when that file already exists

无论输入什么路径。此外,它会创建文件,但仍会引发异常。

【问题讨论】:

  • self.dirpath 到底是什么?
  • 正如我的帖子中所说,路径是新目录的名称。 self.dir 是当前工作目录,同 os.getcwd()
  • 没有更准确的信息,无法回答您的问题。
  • 我的问题怎么不准确?请帮助我提出更好的问题

标签: python sockets ftp mkdir


【解决方案1】:

试试这个方法

newDirectory = os.path.join(self.dir, path)

if not os.path.exists(newDirectory):
    os.makedirs(newDirectory)

发生错误是因为它没有创建通向最后一个主文件夹的所有子目录。

【讨论】:

  • 现在可以了。似乎目录的创建导致我的套接字发生了一些事情并且我得到了 ConnectionAbortedError,知道为什么会发生这种情况吗?
  • @Alura 连接和文件夹创建不相关,可能是别的。在我看到完整的错误和代码之前无法判断。
  • 我终于设法修复了这个错误,我仍然不知道是什么原因造成的,但我的 MKD 命令终于可以工作了。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多