数据编组支持¶
这些例程允许C代码使用与 marshal
模块。有一些函数可以将数据写入序列化格式,还有一些附加的函数可以用来读取数据。用于存储整理数据的文件必须以二进制模式打开。
数字值首先以最低有效字节存储。
该模块支持两个版本的数据格式:版本0是历史版本,版本1共享文件中的内部字符串,并且在解编数据时。版本2对浮点数使用二进制格式。 Py_MARSHAL_VERSION
指示当前文件格式(当前为2)。
-
void PyMarshal_WriteLongToFile(long value, FILE *file, int version)¶
marshalA long 整数, value ,至 file . 这将只写入 value ;无论本机大小 long 类型。 版本 指示文件格式。
-
void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version)¶
封送一个python对象, value ,至 file . 版本 指示文件格式。
-
PyObject *PyMarshal_WriteObjectToString(PyObject *value, int version)¶
- Return value: New reference.
返回一个字节对象,该对象包含 value . 版本 指示文件格式。
以下函数允许读取已封送的值。
-
long PyMarshal_ReadLongFromFile(FILE *file)¶
返回C long 从中的数据流 FILE* 打开阅读。使用此函数只能读取32位值,而不管其本机大小 long .
出错时,设置适当的异常 (
EOFError
)和回报-1
.
-
int PyMarshal_ReadShortFromFile(FILE *file)¶
返回C short 从中的数据流 FILE* 打开阅读。使用此函数只能读取16位的值,而不管 short .
出错时,设置适当的异常 (
EOFError
)和回报-1
.
-
PyObject *PyMarshal_ReadObjectFromFile(FILE *file)¶
- Return value: New reference.
从中的数据流返回python对象 FILE* 打开阅读。
出错时,设置适当的异常 (
EOFError
,ValueError
或TypeError
)和回报NULL
.
-
PyObject *PyMarshal_ReadLastObjectFromFile(FILE *file)¶
- Return value: New reference.
从中的数据流返回python对象 FILE* 打开阅读。不像
PyMarshal_ReadObjectFromFile()
,此函数假定不会从文件中读取更多的对象,从而允许它将文件数据大量加载到内存中,以便反序列化可以从内存中的数据操作,而不是从文件中一次读取一个字节。只有在确定不会从文件中读取任何其他内容时,才使用这些变量。出错时,设置适当的异常 (
EOFError
,ValueError
或TypeError
)和回报NULL
.
-
PyObject *PyMarshal_ReadObjectFromString(const char *data, Py_ssize_t len)¶
- Return value: New reference.
从包含 len 指向的字节 data .
出错时,设置适当的异常 (
EOFError
,ValueError
或TypeError
)和回报NULL
.