在 python 中的多线程中 mkdir 时出错

Error when mkdir in multi threads in python

如果文件夹不存在,我有多线程代码来创建文件夹

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

我遇到这样的错误

The folder cannot be created since a file already exists with the same path

我不确定我能为这个错误做些什么,你有什么想法吗?

阅读the docs。如果您不关心该目录是否已经存在,只关心它在您完成后是否存在,只需调用:

os.makedirs(folder, exist_ok=True)

甚至不使用 exists 检查目录是否存在(取决于竞争条件),只需使用 exist_ok=True 调用 os.makedirs ,如果不存在,它将创建它'存在,如果它已经存在则什么也不做。

这需要 Python 3.2 或更高版本,但如果您使用的是更早的 Python,您可以通过异常处理实现相同的静默忽略:

import errno

try:
    os.makedirs(folder)
except OSError as e:
    if e.errno != errno.EEXIST:
        raise  # Reraise if failed for reasons other than existing already