Чтение gzip-файла, который в данный момент записывается в - PullRequest
2 голосов
/ 29 апреля 2011

Моя программа много обрабатывает файлы, и, поскольку файлы большие, я предпочитаю записывать их как GZIP. Одна из проблем заключается в том, что мне часто приходится читать файлы по мере их записи. Это не проблема без сжатия GZIP, но когда сжатие включено, чтение жалуется на сбой CRC, который, как я полагаю, может иметь отношение к тому, что информация о сжатии не очищается должным образом при записи. Есть ли способ использовать GZIP с Python таким образом, чтобы, когда я пишу и сбрасываю файл (но не обязательно закрываю файл), он также мог быть прочитан?

1 Ответ

0 голосов
/ 29 апреля 2011

Я думаю, что сброс данных в файл (сжатый) просто записывает данные в файл, но заголовки записываются только в close(), поэтому вам нужно сначала закрыть файл, и только после того, как вы сможете открыть его и прочитать все данные, которые вы необходимость. Если вам нужно написать большое количество данных, вы можете попробовать использовать базу данных, например PostgreSQL или MySQL , где вы можете указать таблицу со сжатием (архив, сжатый), и вы сможете чтобы вставить данные в таблицу и прочитать их, программное обеспечение базы данных сделает все остальное за вас (сжатие, распаковка на вставках, выборка).

...