如何安装a焦油gz用Python透明地归档?
我有一个焦油gz其内容必须由外部程序读取的档案。内容将只是暂时需要。我可以把它解压到一个临时文件夹中,然后把我的外部程序指向那里来读取它。之后,我可以再次删除临时文件夹。但是,归档文件可能很大(提取时大于1 GB),因此解包会占用磁盘上的大量空间。我的服务器在HD性能方面是相当弱的,我不能浪费空间,但它确实有大量的RAM和CPU的能力。在
这就是为什么我想尝试透明地装载归档而不完全解包。我遇到了archivemount它似乎正是我想要的。有没有一种方法可以实现archivemount在纯Python中所做的事情?否subprocess.call请说“解决方案”。它应该在64位Linux上运行。在
我认为应该有一种聪明的方法,使用tarfile访问存档的内容,然后使用fusepy创建一个用户空间文件系统来公开存档的内容。有人已经把这些碎片拼在一起了吗?有什么想法吗?在
如果你认为这不是一个好主意,请发表相关评论。如果你知道什么更好,请评论。在
从我的ratarmount模块的0.3.1版本起,您可以使用它或查看它的源代码来装载。焦油gz在Python中。gzip寻求支持来自依赖项indexed_gzip。ratormount本身是基于tarindexer,它实现了使用tarfile获取偏移量然后进行查找的思想。但是,ratamount在其他可用性和性能特性中添加了一个融合层。在
您可以从PyPI安装ratamount:
然后直接从python调用其命令行接口,如下所示:
^{pr2}$该模块的核心是您已经推测的tarfile,它用于迭代所有TarInfo对象并创建一个filepath、offset、size的列表,然后可以使用该列表直接查找原始tar文件中的偏移量,并简单地读取下一个大小字节。这是因为TAR格式非常简单。在
以下是未经优化且非常赤裸裸的核心理念:
上面的示例经过测试可以与:
相关问题 更多 >
编程相关推荐