Является ли zip-файл Python потокобезопасным?Python

Программы на Python
Anonymous
Является ли zip-файл Python потокобезопасным?

Сообщение Anonymous »

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

Проблема в том, что мне нужно добавить каждый файл в 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

Вернуться в «Python»