以下代码片段来自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.htmlyellowPK\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'编解码器无法解码第14个位置的0x9f字节:意外的代码字节
上面的内容是否可以解码?
getvalue()
的结果是二进制 ZIP 表示形式。你希望从“解码”中得到什么?它不是文本,所以你不能将其解码为 Unicode。我不知道你想要实现什么 - 你想打开一个 ZIP 文件吗? - AndiDog