数据编组支持

这些例程允许C代码使用与marshal模块相同的数据格式处理序列化对象。有一些函数可以将数据写入序列化格式,以及可用于读取数据的其他函数。用于存储编组数据的文件必须以二进制模式打开.

数字值首先以最低有效字节存储.

模块支持两种版本的数据格式:版本0是历史版本,版本1共享文件中的实际字符串,以及onunmarshalling。版本2使用二进制格式表示浮点数.Py_MARSHAL_VERSION表示当前文件格式(当前为2).

void PyMarshal_WriteLongToFile( long  value,FILE  *file,int  version)
元帅long整数,value,file。这只会写出value中最不重要的32位;无论大小long类型的大小。version表示文件格式.
void PyMarshal_WriteObjectToFile( PyObject  *value,FILE  *file,int  version)
Marshal一个Python对象,value,file.version表示文件格式.
PyObject* PyMarshal_WriteObjectToString( PyObject  *value,int  version)
Return value: New reference.

返回一个包含value.version表示文件格式.

以下功能允许读回编组值.

long PyMarshal_ReadLongFromFile(文件 *file)
从long的数据流中返回一个C FILE*开放阅读。使用此函数只能读取32位值,无论long.

的原始大小如何。出错时,设置相应的异常(EOFError)并返回-1.

intPyMarshal_ReadShortFromFile(文件 *file)
从short打开的数据流中返回一个C FILE*。无论short.

出错时,设置相应的异常(EOFError)并返回-1.

PyObject * PyMarshal_ReadObjectFromFile(文件 *file)
Return value: New reference.

在FILE*打开forreading.

出错时,设置相应的异常(EOFError, ValueError或TypeError)并返回NULL.

PyObject * PyMarshal_ReadLastObjectFromFile(文件 *file)
Return value: New reference.

在FILE*打开forreading中从数据流中返回一个Python对象。与PyMarshal_ReadObjectFromFile()不同,此函数假定不会从文件中读取其他对象,允许它将文件数据反复加载到内存中,以便反序列化可以从内存中的数据进行操作,而不是一次从文件中读取一个字节。如果您确定不会从文件中读取任何其他内容,请仅使用这些变体.

如果出现错误,请设置相应的异常(EOFError, ValueError或TypeError)并返回NULL.

PyObject * PyMarshal_ReadObjectFromString( const char  *data,Py_ssize_t  len)
Return value: New reference.

从中返回一个Python对象包含len指向的字节缓冲区中的数据流data.

错误时,设置相应的异常(EOFError, ValueError或TypeError)并返回NULL.

评论被关闭。