gpt4 book ai didi

python - 如何使用 python 的 ziplib 文件压缩巨大的纯文件 (+20GB)

转载 作者:行者123 更新时间:2023-12-04 17:59:48 25 4
gpt4 key购买 nike

当文件达到 4GB 时,我在 z.write 中收到 DeprecationWarning: struct integer overflow masking is deprecated 错误。

我的代码:

def compressOutputFile(outputFileName, outputPath=UXConfig.myPath):
os.chdir(outputPath)
z= zipfile.ZipFile(outputFileName+'.zip', 'wb',zipfile.ZIP_DEFLATED,allowZip64=True)
UXUtils.log('Writting file')
z.write(outputFileName)
UXUtils.log('Writting finished')
z.close()
tempFiles.append(outputPath+outputFileName)

文件没有损坏,因为我可以打开并看到这些行。

最佳答案

我从未使用过 zipfile 模块,但我使用了一个 with 语句并针对一个 8GB 的​​文件进行了尝试并且它有效(从 8GB 到 44MB :o):

def zipItUp(file):
with zipfile.ZipFile('zipped.zip', 'w', compression=zipfile.ZIP_DEFLATED, allowZip64=True) as zipped:
zipped.write(file)

看看这是否有任何作用。如果没有,我认为我能想到的唯一其他解决方案是将文件分区,然后对每个 block 进行压缩。

编辑:如果您使用的是 Python 2.6,请考虑包含 contextlib 模块来处理此 topic 中引用的退出错误.

修改后的代码如下:

import contextlib

def zipItUp(file):
with contextlib.closing(zipfile.ZipFile('zipped.zip', 'w', compression=zipfile.ZIP_DEFLATED, allowZip64=True)) as zipped:
zipped.write(file)

看看这是否有效。干杯!

关于python - 如何使用 python 的 ziplib 文件压缩巨大的纯文件 (+20GB),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36894993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com