3

我有一个程序 - 在启动时 - 检查用户提供的输出目录是否存在。如果找不到目录,程序会尝试创建它:

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

Path 是目录的标准绝对路径,例如 '/mnt/share/path/to/output'

它大约有 75% 的时间有效。其余时间我得到“exception.OSError”或“exception.IOError: [Errno 2] No such file or directory”。这两个异常具有相同的错误号和文本。

为什么会这样?我看不出它与权限相关或类似的东西 - 我正在以自己的身份写入我拥有和控制的目录 - 而且它再次在 4 次中的其他 3 次中起作用。我每次都将同一个目录写入同一个地方,并在程序调用之间递归地删除它以进行测试。如果这很重要,它正在写入远程共享 (NFS)。

4

1 回答 1

0

我想这是一个Race Condition的问题,看看这个答案Race Condition,希望它有所帮助。

于 2018-02-28T22:33:03.593 回答