我如何将多个文件对象序列化为一个文件?

时间:2014-08-17 16:18:08

标签: python python-2.7 pygame

我目前负责解决如何在单个文件中有效地打包图像和一些文本的难题。在这样做时,我需要使文件相对较小(它不应该比单独的图像文件的大小大得多),并且访问和保存信息的过程应该相对较快。

现在,我已经找到了一种方法 - 使用pygame将图像转换为字符串,将它(和我需要的文本)存储在python对象中,然后对该对象进行pickle。这样工作正常,但文件最终比图像大很多,因为它没有被压缩。所以为了帮助解决这个问题,我接着使用gzip来腌制对象并压缩它。现在我还有另一个问题 - 整个过程只是有点太慢了,因为我一次需要做几百个这样的文件,这可能需要几分钟(它不应该花费更长的时间) 1/2秒加载单个文件,此方法每个文件最多需要2秒钟。

我有一个想法以某种方式将两个单独的文件放在一个文件中,就像有人使用.zip一样,但不需要进一步压缩数据。只要图像保留其原始的压缩格式(在这种情况下为.png),只需将其数据与某些文本一起存储,理论上应该既快又不会使用更多记忆。问题是,我不知道如何做到这一点。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

Alex Reynolds使用tar档案的想法似乎是一个完美的匹配。