【发布时间】:2012-09-10 04:28:40
【问题描述】:
我有几个线程在集群系统上从 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 file-io filesystems queue cluster-computing