Python 3中的自定义文件类型

时间:2013-04-02 06:03:18

标签: python-3.x format file-format

如何在Python中开始创建自己的文件类型?我有一个设计,但如何将我的数据打包成具有特定格式的文件?

例如,我希望我的文件格式是一个档案的混合(像其他格式,如zip,apk,jar等等,它们基本上都是档案),有一些打包文件的空间,加上一部分包含归档管理器应用程序无法访问的设置和序列化数据的文件。

我对此的要求是使用Cpython的默认模块完成所有这些操作,无需外部模块。

我知道这可能需要很长时间才能解释和完成,但我无法看到如何使用Cpython在Python 3.x中启动它。

2 个答案:

答案 0 :(得分:1)

试试这个:

from zipfile import ZipFile
import json

data = json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])

with ZipFile('foo.filetype', 'w') as myzip:
    myzip.writestr('digest.json', data)

该文件现在是一个带有 json 文件的zip存档(可以在许多语言中轻松阅读),可以使用myzip write 或 writestr 。您可以使用以下方式读取数据:

with ZipFile('foo.filetype', 'r') as myzip:
    json_data_read = myzip.read('digest.json')
    newdata = json.loads(json_data_read)

编辑:您可以使用以下命令将任意数据附加到文件中:

f = open('foo.filetype', 'a')
f.write(data)
f.close()

这适用于winrar但python无法再处理zipfile。

答案 1 :(得分:0)

这可能不适合您的问题,但我认为这可能会对您有所帮助。

我也面临类似的问题...但是最终会遇到诸如创建zip文件然后将zip文件格式重命名为我的自定义文件格式的事情...但是可以用winRar打开它。