В общем суть проблемы ясна из темы.Мне никак не удается распаковать файлы из .zip архива на русском.Я пишу код на питоне 2.7 и на одном форуме мне помогли кинули вот такой код на Python 3.X:
with zipfile.ZipFile(zfile, 'r') as zip:
for name in zip.namelist():
print(name)
unicode_name = name.encode('cp437').decode('cp866')
print(unicode_name) # декодированное имя используем для сохранения файла
# не декодированное имя - для чтения в архиве
with zip.open(name) as f:
content = f.read()
fullpath = os.path.join(os.getcwd() ,unicode_name)
with open(fullpath,'wb') as f:
f.write(content)
я его переписал на второй в силу его понимания но все равно выдает ошибку:
from zipfile import ZipFile
import os
with ZipFile('ezhegodnik-2016.zip', 'r') as zip:
for name in zip.namelist():
print name
unicode_name = name.decode('cp866')
print unicode_name
with zip.open(name) as f:
content = f.read()
fullpath = os.path.join(os.getcwd() ,unicode_name)
with open(fullpath,'w') as f:
f.write(content)
А вот и ошибка собственно:
IOError: invalid mode ('w') or filename: u'E:\\Learning\\programming\\Python\\Parsing\\\u0415\u0436\u0435\u0433\u043e\u0434\u043d\u0438\u043a 2016/'