Python - 压缩数据的库比 ZipFile 更快
Python - faster library to compress data than ZipFile
我正在使用 django 3.0.7 作为框架在 Python 3.9 中开发 Web 应用程序。在 Python 中,我正在创建一个函数,该函数可以将字典转换为 json,然后使用 ZipFile 库将其转换为 zip 文件。目前这是正在使用的代码:
def zip_dict(data: dict) -> bytes:
with io.BytesIO() as archive:
unzipped = bytes(json.dumps(data), "utf-8")
with zipfile.ZipFile(archive, mode="w", compression=zipfile.ZIP_DEFLATED) as zipFile:
zipFile.writestr(zinfo_or_arcname="data", data=unzipped)
return archive.getvalue()
然后我将 zip 文件保存在 Azure Blob 存储中。它可以工作,但问题是这个功能对我来说有点慢。我尝试使用 zlib 库,但性能没有改变,而且创建的 zip 文件似乎已损坏(我什至无法使用 WinRAR 手动打开它)。有没有其他库可以提高压缩速度(不影响压缩率)?
尝试在 zipfile.ZipFile()
对象创建中添加 compresslevel=3
或 compresslevel=1
参数,看看是否能提供更令人满意的速度和足够的压缩。
我正在使用 django 3.0.7 作为框架在 Python 3.9 中开发 Web 应用程序。在 Python 中,我正在创建一个函数,该函数可以将字典转换为 json,然后使用 ZipFile 库将其转换为 zip 文件。目前这是正在使用的代码:
def zip_dict(data: dict) -> bytes:
with io.BytesIO() as archive:
unzipped = bytes(json.dumps(data), "utf-8")
with zipfile.ZipFile(archive, mode="w", compression=zipfile.ZIP_DEFLATED) as zipFile:
zipFile.writestr(zinfo_or_arcname="data", data=unzipped)
return archive.getvalue()
然后我将 zip 文件保存在 Azure Blob 存储中。它可以工作,但问题是这个功能对我来说有点慢。我尝试使用 zlib 库,但性能没有改变,而且创建的 zip 文件似乎已损坏(我什至无法使用 WinRAR 手动打开它)。有没有其他库可以提高压缩速度(不影响压缩率)?
尝试在 zipfile.ZipFile()
对象创建中添加 compresslevel=3
或 compresslevel=1
参数,看看是否能提供更令人满意的速度和足够的压缩。