压缩文件到字节 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-1
和ISO-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编码的文件压缩项目