如何开始在 Python 中创建我自己的文件类型?我有一个设计,但是如何将我的数据打包到具有特定格式的文件中?
例如,我希望我的文件格式是档案的混合(如 zip、apk、jar 等其他格式,它们基本上都是档案),并有一些空间用于打包文件,以及包含设置的文件部分归档管理器应用程序无法访问的序列化数据。
我对此的要求是使用 Cpython 的默认模块完成所有这些操作,而无需外部模块。
我知道解释和执行这可能很长,但我看不出如何在 Python 3.x 中使用 Cpython 启动它。
如何开始在 Python 中创建我自己的文件类型?我有一个设计,但是如何将我的数据打包到具有特定格式的文件中?
例如,我希望我的文件格式是档案的混合(如 zip、apk、jar 等其他格式,它们基本上都是档案),并有一些空间用于打包文件,以及包含设置的文件部分归档管理器应用程序无法访问的序列化数据。
我对此的要求是使用 Cpython 的默认模块完成所有这些操作,而无需外部模块。
我知道解释和执行这可能很长,但我看不出如何在 Python 3.x 中使用 Cpython 启动它。
尝试这个:
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。
这可能不适合您的问题,但我认为这可能会对您有所帮助。
我遇到了类似的问题......但最终会创建一个 zip 文件,然后将 zip 文件格式重命名为我的自定义文件格式......但它可以用 winRar 打开。