Является ли python zipfile потокобезопасным?

В проекте django мне нужно сгенерировать несколько pdf файлов для объектов в базе данных. Поскольку на генерацию каждого файла уходит несколько секунд, я использую celery для асинхронного запуска задач.

Проблема в том, что мне нужно добавить каждый файл в zip-архив. Я планировал использовать модуль python zipfile, но разные задачи могут выполняться в разных потоках, и мне интересно, что произойдет, если две задачи попытаются добавить файл в архив одновременно.

Является ли следующий код потокобезопасным или нет? Я не могу найти никакой ценной информации в официальной документации python.

try:
    zippath = os.path.join(pdf_directory, 'archive.zip')
    zipfile = ZipFile(zippath, 'a')
    zipfile.write(pdf_fullname)
finally:
    zipfile.close()

Примечание: это работает под python 2.6

7
задан Thibault J 8 February 2012 в 14:26
поделиться