У меня есть несколько потоков, работающих параллельно с Python в кластерной системе. Каждый поток python выводится в каталог mydir
. Каждый script перед выдачей чеков, если 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
Я подозреваю, что это может быть связано с состоянием гонки, когда одна работа создает директорию, прежде чем другой доберется до нее. Это возможно? Если да, как можно избежать этой ошибки?
Я не уверен, что это состояние гонки, поэтому было интересно, могут ли другие проблемы в Python вызвать эту нечетную ошибку.