У меня есть несколько потоков, работающих параллельно с 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 вызвать эту странную ошибку.