Уведомления

Группа в Telegram: @pythonsu

#1 Июль 7, 2009 16:19:51

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

zipfile и русские имена bug

Пишу простой IPTV плееер для линукса с программой передач на базе vlc.
И наткнулся на интересный баг
Програмку беру отсюда http://www.beholder.ru/jtv.zip
вот код

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from zipfile import ZipFile
station=u'Юмор_ТВ'
prog=ZipFile('jtv.zip')
for i in prog.infolist():
if i.filename.decode('cp866')==station+'.pdt':
print prog.read(i.filename)
вот такая ошибка

Traceback (most recent call last):
File “test.py”, line 8, in <module>
print prog.read(i.filename)
File “/usr/lib64/python2.5/zipfile.py”, line 489, in read
zinfo.orig_filename, fname)
zipfile.BadZipfile: File name in directory “&#65533;&#65533;&#65533;&#65533;_&#65533;&#65533;.pdt” and header “&#65533;&#65533;&#65533;&#65533;_&#65533;&#65533;.pdt” differ.

возможно ктото сталкивался с чемто подобным ?

ps: Python 2.5.2



Отредактировано (Июль 7, 2009 16:23:23)

Офлайн

#2 Июль 8, 2009 09:31:48

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

zipfile и русские имена bug

возможно кому пригодится, имхо решение не совсем правильное, но меня устраивает
порылся в zipfile разные кодировки в заголовке и в директории cp866 и cp1251
486 строку в файле zipfile поменять с

if fname != zinfo.orig_filename:
на
if fname != zinfo.orig_filename and fname.decode('cp1251')!=zinfo.orig_filename.decode('cp866'):



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version