Распаковать файлы больше памяти с python - PullRequest
1 голос
/ 13 апреля 2020

У меня проблема со сжатыми файлами. Мне нужно распаковать файлы bz2, xz, zst и работать с выходными данными. Однако некоторые из сжатых файлов имеют размер более 10 ГБ, а объем выходных данных составляет не менее 50 ГБ.

У меня только 16 ГБ ОЗУ, есть ли способ:

  1. читать эти сжатые файлы по 1 ГБ за раз
  2. с использованием прочитанных сжатых данных 1 ГБ, распаковать он и производит 1 ГБ данных последовательно (хранить в памяти, а не в файл вывода. Мне нужно работать с распакованными данными)

Заранее спасибо.

1 Ответ

1 голос
/ 13 апреля 2020

Оказывается, только zstd поддерживает распаковку потока, см. Stream Reader API . Оба bz2 и xz не поддерживают распаковку потока, даже если я попытаюсь прочитать файлы по чанку, обрезка сделает этот чанк недействительным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...