Распаковать запароленый zip архив

 
0
 
Python
ava
stas2 | 25.06.2011, 09:46
Прошу помочь распаковать файл из запароленого zip архива. Нужно чтобы работало на Python 2.5 версии.

Пробовал модуль zipfile, но там .extract и .extractall только начиная от версии 2.6 работают, поэтому не подходит. Есть вариант .read() этот файл, а потом создать новый файл с полученным содержимым, но новый файл не соответсвует оригиналу, много пустых лишних строк - так это когда я тестировал с исходником, а у меня в архиве будет файл .pyc, так что наверно вообще чёрти что получится.

Вот например путь к .zip файлу: 'myfolder/x.zip'
Внутри лежит один файл '1.pyc'
Пароль к архиву '12345'
Пожалуйста помогите его извлечь в текущую папку 'myfolder'.

Смысл в том, что я распаковываю скрипт, включаю его (запускаю) и сразу же удаляю - таким образом
у человека нет доступа к .pyc файлу и он не сможет его превратить в .py

Не говорите, что это глупо, я знаю для чего это и как должно работать, я не буду объяснять всю эту картину, просто застрял в этом моменте, не могу извлечь файл из архива.
Kommentare (3)
ava
afiskon | 25.06.2011, 09:59 #
Есть такая утилита unzip - используйте ее + system.
ava
stas2 | 25.06.2011, 10:10 #
На Python.su мне дали похожий ответ:


import os
и используй unzip


на который я ответил так:

Ну из os мне нужен только path, чтобы проверить существование файла. А где взять этот unzip, не вижу нигде..
Прошу дать пример, уверен что это всего пару строк.. А я уже долго себе голову этим ломаю, прошу написать эти пару строк.

Ну вот нашел http://www.info-zip.org/UnZip.html, это? ..
Ссылки для скачивания Frozen, заморожены, да и это не то, о чем я просил.

Мне нужен именно код python для извлечения файла из zip архива с паролем, а не .exe и т.п. которое работает или на win или на Lin, но не на обоих. Неужели великий питон не может решить такую пустяковую задачу? Нужно для версии 2.5

Т.е. нужен именно код на питоне.
ava
Stolzen | 25.06.2011, 11:10 #
Цитата (stas2 @ 25.6.2011, 09:46 findReferencedText)
Пробовал модуль zipfile, но там .extract и .extractall только начиная от версии 2.6 работают, поэтому не подходит.

Попробуйте нужный модуль из __future__ импортировать - иногда получается.

Далее, если нет возможности поставить питон другой версии только из-за отсутствия прав, то можно через virtualenv себе другую версию питона организовать.
Registrieren Sie sich oder melden Sie sich an, um schreiben zu können.
Unternehmen des Tages
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Mitwirkende
ava  Stolzen   afiskon   stas2
advanced
Absenden