Найти - Пользователи
Полная версия: zip архив и русские имена файлов
Начало » Python для новичков » zip архив и русские имена файлов
1
iErroRi
Есть архив 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.

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

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

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

И о да я бы не стал регистрироваться на форуме ради того чтобы получить линк на яндекс, сам уже облазил все. Это был акт отчаяния.
pyuser
Есть мнение, что Вам хотели указать на эту ссылку
iErroRi
Да данная ссылка очень полезна. Но у меня так и не заработало, при попытке read ругалась с ошибкой
File name in directory "имя файла крикозябрами" and header "имя файла крикозябрами" differ.
А помогло только добавление условия в методе read
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