数据编组支持 – 实用程序(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.
评论被关闭。