压缩文件到字节 Python 3

Posted

技术标签:

【中文标题】压缩文件到字节 Python 3【英文标题】:Zip file to bytes Python 3 【发布时间】:2019-02-25 18:29:21 【问题描述】:

我想在 postgres 数据库中存储一个 zip 文件。列类型为bytea

当尝试获取 json 文件或 csv 文件的字节时,我可以使用它

with open(filename, encoding='utf-8') as file_data:
    bytes_content = file_data.read()

但是,如果我尝试使用 zip 文件,甚至是 xls 文件,我会收到错误消息。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd7 in position 14: invalid continuation byte

我做了一些搜索,有人建议更改编码类型,我尝试了latin-1ISO-8859-1,这两个都给我一个错误。

ValueError: A string literal cannot contain NUL (0x00) characters.

关于如何获取 zip 文件的字节以便我可以将其存储在 postgres 数据库中的任何想法?

【问题讨论】:

【参考方案1】:

如果您想以字节形式读取 JSON 文件,您应该以二进制模式打开文件:

with open(filename, 'rb') as file_data:
    bytes_content = file_data.read()

【讨论】:

我认为 'rb' 在 python 3 中不再允许。这行得通。谢谢!

以上是关于压缩文件到字节 Python 3的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python make_archiv 压缩后,MacOS PostScript Typ 1 字体为 0 字节

C++项目:基于HuffmanTree实现文件的压缩与解压缩

逐字节读写以进行压缩

[保姆级万字教程]打造最迷人的S曲线----带你从零手撕基于Huffman编码的文件压缩项目

[保姆级万字教程]打造最迷人的S曲线----带你从零手撕基于Huffman编码的文件压缩项目

[保姆级万字教程]打造最迷人的S曲线----带你从零手撕基于Huffman编码的文件压缩项目