Python xdrlib 模块
实例
将数据打包成 XDR 格式:
import xdrlib
packer = xdrlib.Packer()
packer.pack_int(42)
packer.pack_string(b'Hello')
data = packer.get_buffer()
print(f'Packed data: {data}')
亲自试一试 »
定义和用法
xdrlib 模块用于在 Python 数据类型和 XDR(外部数据表示)格式之间进行转换。
当您需要在不同的计算机系统之间以平台无关的方式交换二进制数据时,请使用此模块。
注意:此模块自 Python 3.11 起已弃用,并将于 Python 3.13 中移除。XDR 在现代应用程序中很少使用。
成员
| 成员 | 描述 |
|---|---|
| Error | XDR 打包或解包失败时引发异常。 |
| Packer | 用于将 Python 数据打包为 XDR 格式的对象。 |
| Packer.get_buffer() | 以字节形式获取打包后的数据。 |
| Packer.pack_array() | 使用打包函数打包一个数组。 |
| Packer.pack_bool() | 打包一个布尔值。 |
| Packer.pack_bytes() | 打包一个固定长度的字节字符串。 |
| Packer.pack_double() | 打包双精度浮点数。 |
| Packer.pack_enum() | 打包枚举值(与 pack_int 相同)。 |
| Packer.pack_farray() | 打包定长数组。 |
| Packer.pack_float() | 打包单精度浮点数。 |
| Packer.pack_fopaque() | 打包定长不透明数据。 |
| Packer.pack_fstring() | 打包定长字符串。 |
| Packer.pack_hyper() | 打包一个 64 位整数。 |
| Packer.pack_int() | 打包一个 32 位有符号整数。 |
| Packer.pack_list() | 打包一个可变长度列表。 |
| Packer.pack_opaque() | 打包可变长度不透明数据。 |
| Packer.pack_string() | 打包一个可变长度字符串。 |
| Packer.pack_uhyper() | 打包一个 64 位无符号整数。 |
| Packer.pack_uint() | 打包一个 32 位无符号整数。 |
| Packer.reset() | 清空缓冲区,重新开始。 |
| Unpacker | 用于将 XDR 数据解包为 Python 类型的对象。 |
| Unpacker.done() | 检查所有数据是否已解包。 |
| Unpacker.get_position() | 获取当前解包位置。 |
| Unpacker.reset() | 将解包位置重置为起始位置。 |
| Unpacker.set_position() | 跳转到缓冲区中的指定位置。 |
| Unpacker.unpack_array() | 使用解包函数解包数组。 |
| Unpacker.unpack_bool() | 解包布尔值。 |
| Unpacker.unpack_bytes() | 解包固定长度的字节字符串。 |
| Unpacker.unpack_double() | 解包双精度浮点数。 |
| Unpacker.unpack_enum() | 解包枚举值。 |
| Unpacker.unpack_farray() | 解包一个定长数组。 |
| Unpacker.unpack_float() | 解包一个单精度浮点数。 |
| Unpacker.unpack_fopaque() | 解包一个定长不透明数据。 |
| Unpacker.unpack_fstring() | 解包一个定长字符串。 |
| Unpacker.unpack_hyper() | 解包一个 64 位整数。 |
| Unpacker.unpack_int() | 解包一个 32 位有符号整数。 |
| Unpacker.unpack_list() | 解包一个可变长度列表。 |
| Unpacker.unpack_opaque() | 解包可变长度不透明数据。 |
| Unpacker.unpack_string() | 解包一个可变长度字符串。 |
| Unpacker.unpack_uhyper() | 解包一个 64 位无符号整数。 |
| Unpacker.unpack_uint() | 解包一个 32 位无符号整数。 |

