Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2011 08:05:50

stas1
От:
Зарегистрирован: 2011-06-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

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

Прошу помочь распаковать файл из запароленого zip архива. Нужно чтобы работало на Python 2.5 версии.

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

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



Офлайн

#2 Июнь 25, 2011 08:21:15

stas1
От:
Зарегистрирован: 2011-06-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

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

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

Не говорите, что это глупо, я знаю для чего это и как должно работать, я не буду объяснять всю эту картину, просто застрял в этом моменте, не могу извлечь файл из архива. Избавьте меня от этих страданий =)



Офлайн

#3 Июнь 25, 2011 09:26:03

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

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

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

Офлайн

#4 Июнь 25, 2011 09:35:34

stas1
От:
Зарегистрирован: 2011-06-14
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

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

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

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

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



Отредактировано (Июнь 25, 2011 09:47:32)

Офлайн

#5 Июнь 25, 2011 22:08:42

Infernus
От:
Зарегистрирован: 2011-06-04
Сообщения: 27
Репутация: +  0  -
Профиль   Отправить e-mail  

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

На 2.7.1 данный быдлокодик распаковывает файл из запароленного архива без проблем. В 2.5, думаю, проблем не будет.

import os, zipfile

pathToArchive = 'путь к архиву'
zipArchive = zipfile.ZipFile(pathToArchive, 'r')
unzippedFile = zipArchive.open('имя файла для распаковки', 'r', 'пароль')
content = unzippedFile.read()
f = open('путь к файлу для записи', 'w')
f.write(content)
unzippedFile.close()
f.close()



Отредактировано (Июнь 25, 2011 22:10:58)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version