尝试使用 os.makedirs 时出现“OSError:[Errno 17] 文件存在”[重复]

2024-01-03

我在集群系统上有几个从 Python 并行运行的线程。每个Python线程输出到一个目录mydir。每个脚本在输出之前检查是否mydir存在,如果不存在则创建它:

if not os.path.isdir(mydir):
    os.makedirs(mydir)

但这会产生错误:

os.makedirs(self.log_dir)                                             
  File "/usr/lib/python2.6/os.py", line 157, in makedirs
mkdir(name,mode)
OSError: [Errno 17] File exists

我怀疑这可能是由于竞争条件,即一项工作创造了dir在其他人到达之前。这可能吗?如果是这样,如何避免这个错误?

我不确定这是一个竞争条件,所以想知道 Python 中的其他问题是否会导致这个奇怪的错误。


从Python开始>=3.2, os.makedirs()可以采用第三个可选参数exist_ok:

os.makedirs(mydir, exist_ok=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 os.makedirs 时出现“OSError:[Errno 17] 文件存在”[重复] 的相关文章

随机推荐