Python-сообщество
![]()
- Начало
- » Python для новичков
- » Первая программа — распаковщик архивов
#1 Март 1, 2011 09:21:18
n2b От: Зарегистрирован: 2011-02-10 Сообщения: 125 Репутация: 0 Профиль Отправить e-mail
Первая программа — распаковщик архивов
После изучения синтаксиса, решил написать программу в целях следующей стадии изучения языка.
Программа должна открыть и распаковать *.rar, *.zip, *.7z архив.
Т.е. пользователь выбирает папку, программа ищет и распаковывает всех архивы в ней. Потом буду добавлять разные фичи в нее, аля автоматического ввода логина и пароля из текстового файла и т.д.
У меня сразу возникли вопросы, как открыть папку и сделать в ней поиск, как распаковать, т.е. я даже не представляю как это надо написать, какой будет код… Поэтому вопрос следующий, с чего начать? Где почитать про это?
#2 Март 1, 2011 10:06:10
cutwater От: Зарегистрирован: 2009-01-08 Сообщения: 444 Репутация: 19 Профиль Отправить e-mail
Первая программа — распаковщик архивов
#3 Март 1, 2011 23:14:21
doza_and От: Зарегистрирован: 2010-08-15 Сообщения: 4138 Репутация: 252 Профиль Отправить e-mail
Первая программа — распаковщик архивов
Можно для затравки это посмотреть
import sys,glob,os,re
import datetime
def ClearDir(nm):
"очистка директории"
for i in glob.glob(nm+"/*"):
os.remove(i)
def UnRar(src,dest):
"распаковка данных в директорию"
filename=os.path.abspath(src)
if not os.path.exists(filename):
raise Exception("file not found "+ filename)
wd=os.getcwd()
# ClearDir(dest);
os.chdir(dest)
os.system("rar e -o+ %s " % filename)
os.chdir(wd)
def UnArj(src,dest):
"распаковка данных в директорию"
filename=os.path.abspath(src)
if not os.path.exists(filename):
raise Exception("file not found "+ filename)
wd=os.getcwd()
os.chdir(dest)
# CliarDir(dest);
os.system("arj e -y %s " % filename)
os.chdir(wd)
def UnPack(src,dest):
if src[-4:]==".rar" or src[-4:]==".RAR":
UnRar(src,dest)
elif src[-4:]==".arj" or src[-4:]==".ARJ":
UnArj(src,dest)
Открыть архив формата rar в PyCharm
Hello world!:)
Сейчас я в самом начале своего пути в программировании, и заранее извиняюсь, если этот вопрос покажется глупым(
Дело в том, что у меня не получается открыть архив .rar с файлами с дз других ребят в программе PyCharm.
Открывается окно с кучей неопознаваемых символов и знаками «?» вместо букв и цифр кода.
Может, нужно что-то дополнительно скачать?
Заранее спасибо!
P.S.: zip открывается; rar сжимала в zip, но и это не помогло — открывается текстовой файл с такими же символами.
python-unrar
Work with RAR archive files through unrar library using ctypes.
Install UnRAR library
python-unrar requires UnRAR library. You can download UnRAR library sources from:
http://www.rarlab.com/rar_add.htm
and compile (you may need to rename the makefile that you want to use according to your OS) and install it from there:
$ make lib $ make install-lib
For Windows you can also download the already compiled library (http://www.rarlab.com/rar/UnRARDLL.exe).
If you prefer not to install the library, you should make it «findable» by adding the library file to a directory where libraries are searched (or change required environment variable).
As an alternative, you can also set UNRAR_LIB_PATH variable in your environment to the library path and python-unrar will try to load the UnRAR library from there.
Testing without installing
You can build from source with:
$ python setup.py build
And then run a Python shell with unrar available:
$ PYTHONPATH=`pwd`/build/lib python
Or you could also directly add the unrar directory from this repo to your PYTHONPATH . In any case you will still need to make the unrar library available as mentioned above.
Install python-unrar
To install python-unrar:
$ pip install unrar
Examples
>>> from unrar import rarfile >>> rar = rarfile.RarFile('sample.rar') >>> rar.namelist() [u'test_file.txt'] >>> rar.printdir() File Name Modified Size test_file.txt 2013-04-14 08:20:28 17 >>> rar.testrar() >>> info = rar.infolist()[0] >>> info.filename u'test_file.txt' >>> info.file_size 17L >>> info.date_time (2013L, 4L, 14L, 8L, 20L, 28L) >>> rar.extractall() >>> rar.read('test_file.txt') 'This is for test.'
Как распаковать .rar архив с паролем ? Python
Пробовал с помощью библиотеки rarfile, смог распаковать .rar архив без пароля, но при распаковке архива с паролем, столкнулся с такой ошибкой ‘test.rar’ is encrypted with WZ_AES encryption and requires a password
Отслеживать
задан 20 фев 2023 в 23:58
355 2 2 серебряных знака 11 11 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
password = 'pass' file.extractall(pwd=password)
Отслеживать
ответ дан 21 фев 2023 в 6:49
461 3 3 серебряных знака 6 6 бронзовых знаков
Что такое file ?
21 фев 2023 в 13:06
Я не знаю что это было, но сегодня это заработало, вчера тоже самое делал, и ничего не работало. Видимо я вчера установил нужные компоненты, но не перезагрузил пк, поэтому была ошибка
21 фев 2023 в 19:04
@Robot Если вы копировали текст с какого-либо сайта, то могла кодировка вставленного текста просто не восприниматься вашей IDE, у меня в PyCharm иногда бывает такое