Найти - Пользователи
Полная версия: Распаковка Zip файла с русскими названиями
Начало » Python для новичков » Распаковка Zip файла с русскими названиями
1
Motan
В общем суть проблемы ясна из темы.Мне никак не удается распаковать файлы из .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/'
doza_and
У вас в имени прямой слеш в конце, что есть нехорошо. Сие не проблема русских имен или питона 2.7 а непонимания что дает namelist
Motan
doza_and
У вас в имени прямой слеш в конце, что есть нехорошо. Сие не проблема русских имен или питона 2.7 а непонимания что дает namelist
ZipFile.namelist()
Return a list of archive members by name.
как я понимаю она возвращает переменную типа list с именами файлов в архиве.Я ещё могу добавить я вообще мало что понимаю из питона, но сдавать курсач как-то надо
doza_and
Motan
с именами файлов в архиве
Неправильно понимаете. archive members это не только файлы. И к питону эта проблема не имеет никакого отношения. https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT

Motan
Мне никак не удается распаковать файлы из .zip архива на русском
Постановка задачи неясна. Вы программой архиватором не пробовали пользоваться?
Motan
Задача простая, у меня есть .zip архив , мне надо по средствам питона извлечь этот архив.Первая ссылка в гугле была на библиотеку ‘zipfile’ я скопипастил код извлечение,все прошло успешно,но на выходе я получил нечитабельные символы вместо названия файлов и директории,поискал по интернету что и зачем нашел код и опять незадача,после того как Вы сказали что дело в слеше в конце я replace'ом заменил его на пробел но все равно не могу извлечь именно директорию с файлами
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