我遇到的情况是我有一个现有文件。我想使用 gzip 压缩该文件并获取该文件的 base64 编码,并使用该字符串进行后续操作,包括作为 API 调用中数据的一部分发送。
我有以下代码,可以正常工作:
import base64
import gzip
base64_string_to_use_later = None
with open('C:\\test.json', 'rb') as orig_file:
with gzip.open('C:\\test.json.gz', 'wb') as zipped_file:
zipped_file.writelines(orig_file)
with gzip.open('C:\\test.json.gz', 'rb') as zipped_file:
base64_string_to_use_later = base64.b64encode(zipped_file.read())
此代码将获取现有文件,创建压缩版本并将其写回文件系统。第二个 block 获取压缩文件,打开它并获取 Base 64 编码版本。
有没有办法让这个更优雅地压缩内存中的文件并检索内存中的base64编码字符串?
最佳答案
使用gzip.compress()
压缩内存中的数据而不是写入文件。
import base64
import gzip
with open('C:\\test.json', 'rb') as orig_file:
base64_string_to_use_later = base64.b64encode(gzip.compress(orig_file.read()))
关于现有文件上的 Python 内存中 GZIP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77290205/