Найти - Пользователи
Полная версия: Распаковать запароленый zip архив
Начало » Python для новичков » Распаковать запароленый zip архив
1
stas1
Прошу помочь распаковать файл из запароленого zip архива. Нужно чтобы работало на Python 2.5 версии.

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

Вот например путь к .zip файлу: ‘myfolder/x.zip’
Внутри лежит один файл ‘1.pyc’
Пароль к архиву ‘12345’
Пожалуйста помогите его извлечь в текущую папку ‘myfolder’.
stas1
Смысл в том, что я распаковываю скрипт, включаю его (запускаю) и сразу же удаляю - таким образом
у человека нет доступа к .pyc файлу и он не сможет его превратить в .py

Не говорите, что это глупо, я знаю для чего это и как должно работать, я не буду объяснять всю эту картину, просто застрял в этом моменте, не могу извлечь файл из архива. Избавьте меня от этих страданий =)
sypper-pit
import os
и используй unzip
stas1
Ну из os мне нужен только path, чтобы проверить существование файла. А где взять этот unzip, не вижу нигде..
Прошу дать пример, уверен что это всего пару строк.. А я уже долго себе голову этим ломаю, прошу написать эти пару строк.

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

Мне нужен именно код python для извлечения файла из zip архива с паролем, а не .exe и т.п. которое работает или на win или на Lin, но не на обоих. Неужели великий питон не может решить такую пустяковую задачу? Нужно для версии 2.5
Infernus
На 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()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB