Форум сайта python.su
Прошу помочь распаковать файл из запароленого zip архива. Нужно чтобы работало на Python 2.5 версии.
Пробовал модуль zipfile, но там .extract и .extractall только начиная от версии 2.6 работают, поэтому не подходит. Есть вариант .read() этот файл, а потом создать новый файл с полученным содержимым, но новый файл не соответсвует оригиналу, много пустых лишних строк - так это когда я тестировал с исходником, а у меня в архиве будет файл .pyc, так что наверно вообще чёрти что получится.
Вот например путь к .zip файлу: ‘myfolder/x.zip’
Внутри лежит один файл ‘1.pyc’
Пароль к архиву ‘12345’
Пожалуйста помогите его извлечь в текущую папку ‘myfolder’.
Офлайн
Смысл в том, что я распаковываю скрипт, включаю его (запускаю) и сразу же удаляю - таким образом
у человека нет доступа к .pyc файлу и он не сможет его превратить в .py
Не говорите, что это глупо, я знаю для чего это и как должно работать, я не буду объяснять всю эту картину, просто застрял в этом моменте, не могу извлечь файл из архива. Избавьте меня от этих страданий =)
Офлайн
import os
и используй unzip
Офлайн
Ну из os мне нужен только path, чтобы проверить существование файла. А где взять этот unzip, не вижу нигде..
Прошу дать пример, уверен что это всего пару строк.. А я уже долго себе голову этим ломаю, прошу написать эти пару строк.
Ну вот нашел http://www.info-zip.org/UnZip.html, это? ..
Ссылки для скачивания Frozen, заморожены, да и это не то, о чем я просил.
Мне нужен именно код python для извлечения файла из zip архива с паролем, а не .exe и т.п. которое работает или на win или на Lin, но не на обоих. Неужели великий питон не может решить такую пустяковую задачу? Нужно для версии 2.5
Отредактировано (Июнь 25, 2011 09:47:32)
Офлайн
На 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)
Офлайн