Расшифровать байты

Следующий фрагмент кода взят из zipfile.py.

   self.fp.write(zinfo.FileHeader())

   def FileHeader(self):

       header = struct.pack(structFileHeader, stringFileHeader,
                 self.extract_version, self.reserved, flag_bits,
                 self.compress_type, CRC, dosdate, CRC,
                 compress_size, file_size,
                 len(filename), len(extra))
       return header + filename + extra

В каком-то другом файле:

  // Some other codes.....


  zip_file = zip_dir(self.upload_dir)

  zip_file.getvalue()

Мой вопрос:

Результат 'zip_file.getvalue()' выглядит следующим образом:

...b'PK\x03\x04\x14\x00\x00\x00\x00\x00\x00\x00O>\x9f\xec\x04\xd0\x06\x00\x00\x00\x06\x00\x00\ x00\n\x00\x00\x00index.htmlжелтыйPK\x01\x02\x14\x03\x14\x00\x00\x00\x00\x00\x84\x93O>\x9f\xec\x04\xd0\x06\x00\x00 \x00\x06\x00\x00\x00\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x81\x00\x00\x00\x00index.htmlPK\x05 \x06\x00\x00\x00\x00\x01\x00\x01\x008\x00\x00\x00.\x00\x00\x00\x00\x00'

Если я попытаюсь декодировать, т.е.

zip_file.getvalue().decode()

он говорит:

Кодек utf8 не может декодировать байт 0x9f в позиции 14: неожиданный байт кода

Можно ли расшифровать вышесказанное?


person pkumar    schedule 15.02.2011    source источник
comment
Результат getvalue() представляет собой двоичное представление ZIP. Что вы ожидаете от его расшифровки? Это не текст, поэтому вы не можете декодировать его в Unicode. Я не знаю, чего вы пытаетесь достичь - вы хотите открыть ZIP-файл ??   -  person AndiDog    schedule 15.02.2011
comment
Значение, которое я получаю выше, это b'something'. Я просто хочу преобразовать «что-то» в «что-то»? Я не уверен, что это можно сделать.   -  person pkumar    schedule 15.02.2011
comment
Это просто не имеет смысла. Сначала вы должны понять разницу между байтами и строками в Python 3. Выше приведено двоичное содержимое ZIP-файла.   -  person AndiDog    schedule 15.02.2011


Ответы (1)


Там нечего расшифровывать. Байты составляют zip-файл, и вы можете извлечь содержимое архива с творческим использованием zipfile.

person Ignacio Vazquez-Abrams    schedule 15.02.2011