Python 3 中的自定义文件类型

jui*_*uio 5 format file-format python-3.x

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

例如,我希望我的文件格式是档案的混合(如其他格式,如 zip、apk、jar 等,它们基本上都是档案),并有一些空间用于打包文件,以及包含设置的文件部分和不会被存档管理器应用程序访问的序列化数据。

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

我知道这可能需要很长时间来解释和执行,但我不知道如何在 Python 3.x 中使用 Cpython 启动它。

joo*_*jaa 5

尝试这个:

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)
Run Code Online (Sandbox Code Playgroud)

该文件现在是一个带有json文件的 zip 存档(很容易以多种语言再次读取),您可以使用 myzip writewritestr将文件添加到存档中。您可以使用以下方式读回数据:

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

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

f = open('foo.filetype', 'a')
f.write(data)
f.close()
Run Code Online (Sandbox Code Playgroud)

这适用于 winrar,但 python 无法再处理 zip 文件。