Я хотел бы заархивировать пару файлов, которые могут составлять около 99 ГБ, используя python. Каков наиболее эффективный способ сделать это, используя библиотеку zipfile. Это пример кода, у меня естьКак зашифровать очень большой файл в python
with gcs.open(zip_file_name, 'w', content_type=b'application/zip') as f:
with zipfile.ZipFile(f, 'w') as z:
for file in files:
is_owner = (is_page_allowed_to_visitor(page, visitor) or (file.owner_id == visitor.id))
if is_owner:
file.show = True
elif file.available_from:
if file.available_from > datetime.now():
file.show = False
elif file.available_to:
if file.available_to < datetime.now():
file.show = False
else:
file.show = True
if file.show:
file_name = "/%s/%s" % (gcs_store.get_bucket_name(), file.gcs_name)
gcs_reader = gcs.open(file_name, 'r')
z.writestr('%s-%s' %(file.created_on, file.name), gcs_reader.read())
gcs_reader.close()
f.close() #closing zip file
некоторые моменты Примечание:
1) Я использую приложение двигателя Google для размещения файлов, так что я не могу использовать() метод zipfile.write. Я могу получить содержимое файла только в байтах.
Заранее спасибо
IINM вам нужно использовать ZipFile расширение формата ZIP64 для файлов выше 4 Гб. –
@PauloScardine Я ищу альтернативное средство для архивирования файлов без необходимости использовать память, так как у меня не будет около 99 ГБ памяти, лежащей около –
. Проверьте [zipstream] (https://github.com/longaccess/python-zipstream) вместо модуля zipfile по умолчанию. К сожалению, вы не можете установить двоичные модули в GAE. –