Следующий фрагмент кода взят из 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: неожиданный байт кода
Можно ли расшифровать вышесказанное?
getvalue()
представляет собой двоичное представление ZIP. Что вы ожидаете от его расшифровки? Это не текст, поэтому вы не можете декодировать его в Unicode. Я не знаю, чего вы пытаетесь достичь - вы хотите открыть ZIP-файл ?? - person AndiDog   schedule 15.02.2011