Форум сайта python.su
-1
День добрый.
Есть задача, добраться до содержимого в архиве. Архив в формате *.rar.
Набрел на модуль rarfile, но столкнулся с глупой проблемой, немогу воспроизвести даже пример из официальной документации по модулю
https://rarfile.readthedocs.org/en/latest/api.html
import rarfile rf = rarfile.RarFile('myarchive.rar') for f in rf.infolist(): print f.filename, f.file_size if f.filename == 'README': print(rf.read(f))
AttributeError: 'module' object has no attribute 'RarFile'
Отредактировано Inok (Дек. 7, 2013 19:02:16)
Офлайн
568
Linux, python 2.7.3
import rarfile rf = rarfile.RarFile('subprocess.rar') for f in rf.infolist(): print f.filename, f.file_size
subprocess 3925105
Офлайн
-1

у меня win7, python3. Устанавливал модуль через CMD: python setup.py install
лог установки
C:\Python33\Module\rarfile-2.6>python setup.py install
running install
running build
running build_py
running install_lib
running install_egg_info
Removing C:\Python33\Lib\site-packages\rarfile-2.6-py3.3.egg-info
Writing C:\Python33\Lib\site-packages\rarfile-2.6-py3.3.egg-info
Отредактировано Inok (Дек. 7, 2013 19:22:08)
Офлайн
568
Я поставил через pip
Офлайн
-1
извиняюсь!! назвал свой модуль именем rarfile!


Прошу простить за беспокойство!
Офлайн
33
InokПользоваться атрибутами, которые есть у объекта.
Отсюда вопрос может ли кто подсказать как избежать данной ошибки
Офлайн
-1
Еще раз день добрый. продолжаю изучать данный модуль и встретил данную ошибку
код
import rarfile with rarfile.RarFile('0e61058f7dd1b101684dab66742885b3.rar') as rf: with rf.open('0e61058f7dd1b101684dab66742885b3') as f: for ln in f: print(ln.strip())
> "Python " temp.py Traceback (most recent call last): File "temp.py", line 9, in <module> with rarfile.RarFile('0e61058f7dd1b101684dab66742885b3.rar') as rf: File "C:\Python33\lib\site-packages\rarfile.py", line 493, in __init__ self._parse() File "C:\Python33\lib\site-packages\rarfile.py", line 734, in _parse self._parse_real() File "C:\Python33\lib\site-packages\rarfile.py", line 745, in _parse_real raise NotRarFile("Not a Rar archive: "+self.rarfile) rarfile.NotRarFile: Not a Rar archive: 0e61058f7dd1b101684dab66742885b3.rar
Прикреплённый файлы:
fc0d249d90a6043a9022c97a75e47c09.rar (878 байт)
Офлайн
33
Inok
Он же тебе уже почти по-русски написал - это не rar архив
Можешь убедиться сам, открыв через rar-архиватор
Отредактировано Budulianin (Дек. 8, 2013 18:12:08)
Офлайн
-1
как восклицает один мой знакомый: “ДА как, так то!”. У меня rar открывает и предлагает его распаковать! Видимо не хватает обязательных реквизитов для модуля… cmd приди на помощь.
Кто подскажет как можно работать с такими! архивами буду благодарен!
Офлайн
568
Может быть я скажу какую то глупость, но WinRar (а Вы открываете файл в винде наверняка им) помимо собственно .rar архивов читает еще кучу форматов и вовсе не факт, что Ваш файл имеющий расширение rar и есть архив rar, вполне может быть это zip или tar.
Посмотрите хексом первые байты архива, что там?
Первые четыре байта rar архива = “Rar!”
Офлайн