Считайте содержание файла RAR в память в Python

в настоящее время мы используем apc, свободный, и был просто простой Plug and Play на наших живых серверах. Если огромное увеличение производительности для нашего сайта, тем более, что увеличенный размер проекта. У меня также есть apc.stat, отключенный, таким образом, он не проверяет, был ли код обновлен, поэтому каждый раз, когда мы должны обновить код живого сайта, мы перезапускаем апача.

6
задан Brent Taylor 27 July 2009 в 00:25
поделиться

6 ответов

Настоящий ответ заключается в том, что библиотеки нет, и вы не можете ее создать. Вы можете использовать rarfile или 7zip unRAR (который менее бесплатный, чем 7zip, но все же бесплатный, как в пиве), но оба подхода требуют внешнего исполняемого файла. Лицензия для RAR в основном требует этого, поскольку, хотя вы можете получить исходный код для unRAR, вы не можете его модифицировать каким-либо образом, и превращение его в библиотеку будет представлять собой незаконную модификацию.

Кроме того, надежные архивы RAR (наиболее сжатые) не могут быть доступны случайным образом, поэтому вам все равно придется разархивировать все это. WinRAR представляет пользовательский интерфейс, который, кажется, избегает этого, но на самом деле он просто распаковывает и переупаковывает архив в фоновом режиме.

4
ответ дан 8 December 2019 в 13:48
поделиться

RAR - частный формат; Я не думаю, что существуют какие-либо общедоступные спецификации, поэтому поддержка сторонних инструментов и библиотек практически отсутствует.

Вам гораздо лучше использовать ZIP; он совершенно бесплатный, имеет точную общедоступную спецификацию, библиотека сжатия доступна повсюду (zlib - одна из самых широко используемых библиотек в мире), и ее очень легко кодировать.

http: //docs.python .org / library / zipfile.html

1
ответ дан 8 December 2019 в 13:48
поделиться

Бесплатная библиотека 7zip также может обрабатывать файлы RAR.

0
ответ дан 8 December 2019 в 13:48
поделиться

Посмотрите на модуль "struct" Python. Затем вы можете интерпретировать формат файла RAR непосредственно в вашей программе Python,

0
ответ дан 8 December 2019 в 13:48
поделиться

Библиотека pyUnRAR2 может извлекать файлы из архивов RAR в память (и на диск, если хотите). Он доступен по лицензии MIT и просто обертывает UnRAR.dll в Windows и unrar в Unix. Щелкните «QuickTutorial», чтобы просмотреть примеры использования.

В Windows он может выполнять извлечение в память (а не на диск) с помощью (включенного) UnRAR.dll, установив обратный вызов с помощью RARSetCallback () и затем вызвав RARProcessFile () с параметром RAR_TEST вместо параметра RAR_EXTRACT, чтобы Избегайте извлечения файлов на диск. Затем обратный вызов отслеживает события UCM_PROCESSDATA для чтения данных. Из документации для событий UCM_PROCESSDATA: «Обработка распакованных данных. Его можно использовать для чтения файла во время его извлечения или тестирования без фактического извлечения файла на диск».

В Unix unrar может просто распечатать файл на стандартный вывод, поэтому библиотека просто читает из канала, подключенного к stdout unrar. Вам нужен двоичный файл unrar, в котором есть "p" для команды "Print file to stdout". Используйте «apt-get install unrar», чтобы установить его в Ubuntu.

2
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: