是否有一个Python库,可以在不使用实际磁盘文件的情况下操纵内存中的zip存档?
ZipFile库不允许您更新存档。唯一的方法似乎是将其提取到目录中,进行更改,然后从该目录中创建新的zip。我想修改没有磁盘访问权限的zip归档文件,因为我将下载它们,进行更改并再次上传它们,因此没有理由存储它们。
尽管几乎没有任何接口可以避免磁盘访问,但类似于Java的ZipInputStream / ZipOutputStream的方法可以解决问题。
根据Python文档:
class zipfile.ZipFile(file[, mode[, compression[, allowZip64]]])
Open a ZIP file, where file can be either a path to a file (a string) or a file-like object.
因此,要打开内存中的文件,只需创建一个类似文件的对象(也许使用BytesIO)。
file_like_object = io.BytesIO(my_zip_data)
zipfile_ob = zipfile.ZipFile(file_like_object)
如何将内存中的zipfile写入文件?
问题内容: 如何解压缩到内存? 我尝试(返回上): 问题答案: 提取到文件系统,因此您将无法获得所需的内容。若要提取内存中的文件,请使用方法。 如果您确实需要内存中的全部内容,则可以执行以下操作:
zip() 函数是 Python 内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串以及 range() 区间构成的列表)“压缩”成一个 zip 对象。所谓“压缩”,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。 和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函数会直接返回列表,而不是返回 zip 对象。但是,返回的列表或者 zip
本文向大家介绍Python zip()函数,包括了Python zip()函数的使用技巧和注意事项,需要的朋友参考一下 zip()函数用于对多个迭代器进行分组。使用帮助方法查看zip()函数的文档。运行以下代码以获取有关zip()函数的帮助。 示例 如果运行上面的程序,您将得到以下结果。 输出结果 让我们看一个简单的例子。 示例 如果运行上面的程序,您将得到以下结果 输出结果 我们还可以从压缩对象
本文向大家介绍zipapp-管理可执行的Python zip存档,包括了zipapp-管理可执行的Python zip存档的使用技巧和注意事项,需要的朋友参考一下 从3.5版开始,zipapp模块已在Python的标准库中引入。该模块用于管理包含Python代码的zip文件的创建,这些文件可以由Python解释器直接执行。该模块提供了命令行界面和编程界面。 要以编程方式使用zipapp模块,我们应
问题内容: 我有一个长时间运行的脚本,如果让脚本运行足够长的时间,它将消耗系统上的所有内存。 在不详细介绍脚本的情况下,我有两个问题: 是否有可遵循的“最佳实践”,以防止泄漏发生? 有什么技术可以调试Python中的内存泄漏? 问题答案: 看看这篇文章:跟踪python内存泄漏 另外,请注意,垃圾收集模块实际上可以设置调试标志。看一下功能。此外,请查看Gnibbler的这段代码,以确定调用后已创建