Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 9, 2012 08:53:36

iErroRi
Зарегистрирован: 2012-04-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

zip архив и русские имена файлов

Есть архив jtv.zip с программой передач, внутри есть файлы как английские так и русские.

myzip = zipfile.ZipFile("jtv.zip", 'r')
for name in myzip.namelist():
  ...
  ndx = myzip.read(name)

Как доходит до файлов с руским именем сразу вываливается с ошибкой

zipfile.BadZipfile: File name in directory “▒▒▒.ndx” and header “▒▒▒▒.ndx” differ.

Офлайн

#2 Апрель 9, 2012 13:17:47

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

zip архив и русские имена файлов

http://yandex.ru/yandsearch?rpt=rad&text=python+ZipFile+%D0%B8+%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B5+%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B+%D0%B1%D1%83%D0%BA%D0%B2%D1%8B&lr=78
на первой же странице интересная ссылка, пробуйте



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Апрель 10, 2012 02:29:03

iErroRi
Зарегистрирован: 2012-04-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

zip архив и русские имена файлов

Чинил по методу представленному тут http://python.su/forum/topic/4726/?page=1#post-30742, тока не правил файл библиотеки, а скопировал ее в свой код и подправил. Получился костыль в 800 строк)

Сначала попробовал наследоваться от класса чтобы подправить только метод read, но как оказалась в классе используются внешние переменные из модуля, как так я не понял.

Кстати яндекс у меня не дал не 1 го результата по вашей ссылке.

И о да я бы не стал регистрироваться на форуме ради того чтобы получить линк на яндекс, сам уже облазил все. Это был акт отчаяния.

Офлайн

#4 Апрель 10, 2012 03:07:54

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

zip архив и русские имена файлов

Есть мнение, что Вам хотели указать на эту ссылку



Офлайн

#5 Апрель 10, 2012 08:49:36

iErroRi
Зарегистрирован: 2012-04-09
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

zip архив и русские имена файлов

Да данная ссылка очень полезна. Но у меня так и не заработало, при попытке read ругалась с ошибкой

File name in directory "имя файла крикозябрами" and header "имя файла крикозябрами" differ.
А помогло только добавление условия в методе read

Отредактировано iErroRi (Апрель 10, 2012 08:50:29)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version