我对内存效率优化程序有点陌生,所以这看起来有点简陋:如果我打算将数百个文件(可能超过 100mb)添加到一个 zip,哪种方法更适合保持系统资源可用? (和捕捉)
下面的 zip_queue 变量是一个全局文件列表。
我目前的方法:
with zipfile.ZipFile(zip_name, "a", compression=zipfile.ZIP_DEFLATED) as myzip:
for file in zip_queue:
myzip.write(file)
或者这样:
for file in zip_queue:
with zipfile.ZipFile(zip_name, "a", compression=zipfile.ZIP_DEFLATED) as myzip:
myzip.write(file)
我猜测后者会在每次附加文件时刷新内存,但每次打开和关闭 zip 都会比简单地保持文件打开产生更大的内存成本吗?
谢谢!
最佳答案
我会采用第一种方式,只是为了避免一遍又一遍地关闭和重新打开同一个输出文件。我怀疑每种方法到底使用多少内存的细节很重要,如果这些细节真的很重要,那么您需要用 Python 以外的其他语言编写代码。
作为一般规则,文件访问比内存慢,所以我根本不会担心这里的内存使用情况,除非您有可以证明的实际问题。
关于python - 如何以内存高效的方式将大量文件添加到 zip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23199533/