数据编组支持 – 实用程序(Python教程)(参考资料)
数据编组支持
这些例程允许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的数据流中返回一个CFILE*开放阅读。使用此函数只能读取32位值,无论long.的原始大小如何。出错时,设置相应的异常(
EOFError)并返回-1.
- int
PyMarshal_ReadShortFromFile(文件 *file) - 从
short打开的数据流中返回一个CFILE*。无论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.
评论被关闭。