Python2.7-xdrlib
xdrlib模块,用于打包和解包 xdr 数据。XDR 提供了一种与体系结构无关的表示数据,解决了数据字节排序的差异、数据字节大小、数据表示和数据对准的方式。使用XDR的应用程序,可以在异构硬件系统上交换数据
1、模块对象
1.1 Packer 对象,用于把数据打包成 xdr 格式
1.1.1 初始化构建类:Packer,不接受任何参数
1.1.2 实例方法
get_buffer():字符串形式返回已经打包的缓冲区内数据
reset():清空缓冲区内已打包的数据
打包数据都通过 pack_type() 对对应数据类型 type 进行操作,基本所有方法都是接收一个数据参数对其打包,包括 pack_uint(),pack_int(),pack_enum(),pack_bool(),pack_uhyper(),pack_hyper(),pack_float(),pack_double()
pack_fstring(n, s):打包指定长度字符串 s,n 为字符串长度,但不会被打包。如果字符串需要 4 字节对齐,会自动补空字节(null bytes)
pack_string(s):打包可变长度字符串 s,字符串的长度会先被打包,然后用 pack_fstring() 打包
pack_fopaque(n, data):打包指定长度的不透明数据流(opaque data stream),参数同 pack_fstring()
pack_opaque(data):打包可变长度不透明数据,参数与结果同 pack_string()
pack_bytes(bytes):打包可变长度字节数据流,参数与结果同 pack_string()
pack_list(list, pack_item):打包一个同质列表 list,pack_item 是对列表中每个元素调用的打包方法,即 pack_type()
pack_farray(n, array, pack_item):打包指定长度 n 的列表或数组,长度不会被打包,但如果数组长度不等于 n,会抛出 ValueError,pack_item 同上
pack_array(list, pack_item):打包可变长度的列表或数组,长度会先被打包,然后用 pack_farray() 打包
1.2 Unpacker 对象,用于把 xdr 格式数据变回原数据
1.2.1 初始化构建类:Unpacker(data),data 为待解包数据
1.2.2 实例方法
reset(data):重新设置待解包数据至 data
get_position():返回现在数据缓冲区中的未打包起始位
set_position(position):设置数据缓冲区中的未打包起始位
get_buffer():字符串形式返回未打包的缓冲区内数据
done():指示解包完成,若实际未完成则抛出 Error 异常
解包数据都通过 unpack_type() 对对应数据类型 type 进行操作,基本所有方法都不接受参数,然后返回解包结果对象,都是在打包的方法前加上 un
unpack_fstring(n):解包指定长度字符串,n 为期望获得的字符串长度。如果字符串需要 4 字节对齐,会自动补空字节(null bytes)
unpack_string():解包可变长度字符串 s,字符串的长度会先被解包,然后用 unpack_fstring() 打包
unpack_fopaque(n):解包指定长度的不透明数据流(opaque data stream),参数同 unpack_fstring()
unpack_opaque():解包可变长度不透明数据,参数与结果同 unpack_string()
unpack_bytes():解包可变长度字节数据流,参数与结果同 unpack_string()
unpack_list(unpack_item):解包一个同质列表,unpack_item 是对列表中每个元素调用的解包方法,即 unpack_type()
unpack_farray(n, unpack_item):解包指定长度 n 的列表或数组,unpack_item 同上
unpack_array(unpack_item):解包可变长度的列表或数组,长度会先被解包,然后用 unpack_farray() 打包
2、模块异常
xdrlib.Error:异常基类,只有一个 msg 属性,用于描述错误
xdrlib.ConversionError:从 Error 继承而来,没有额外属性
Python2.7-xdrlib的更多相关文章
- 让VIM支持Python2 by update-alternatives
前言 Ubuntu 16+中$ sudo apt install vim所安装的vim只支持Python3,但很多插件如YCM和powerline均需要Python2,那就来场"生命贵在折 ...
- 烂泥:python2.7和python3.5源码安装
本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天在centos6.6安装ansible时,一直提示python版本不对,导致不能安 ...
- python版本随意切换之python2.7+django1.8.7+uwsgi+nginx源码包部署。
资源准备: wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz wget https://www.djangoproject ...
- windows XP上实现python2.7.5和python3.4.3共存
windows XP上实现python2.7.5和python3.4.3共存过程记录: 1. 首先安装python2.7.5和python3.4.3,两个版本安装顺序不分前后; 2. 检查系统环境变量 ...
- Python2 基本数据结构源码解析
Python2 基本数据结构源码解析 Contents 0x00. Preface 0x01. PyObject 0x01. PyIntObject 0x02. PyFloatObject 0x04. ...
- Ubuntu安装Python2.7,nodejs
安装Python2.7 sudo add-apt-repository ppa:fkrull/deadsnakes-python2.7sudo apt-get update sudo apt-get ...
- Windows下安装python2和python3双版本
现在大家常用的桌面操作系统有:Windows.Mac OS.ubuntu,其中Mac OS 和 ubuntu上都会自带python.这里我们只介绍下Windows(我用的Win10)环境下的pytho ...
- [python]CentOS 6下安装Python2.7
安装方法 如果在CentOS上自己编译安装过python2.7,使用过程中会发现有些标准库没有安装之类的问题. 逛别人博客的时候发现,一个便捷的方法:使用RHSCL的全称是Red Hat Softwa ...
- 在CentOS 6.5上安装python2.7
1.yum groupinstall “Development tools” 2.安装编译Python需要的组件 yum install zlib-devel bzip2-devel openssl- ...
- python2不同版本安装json模块
1.常用json库主要有json-py和simplejson 1) json-py 包含json和minjson,用法一样 Python (#, Jan , ::) [GCC (Red Hat -)] ...
随机推荐
- ZOJ3209(KB3-B DLX)
Treasure Map Time Limit: 2 Seconds Memory Limit: 32768 KB Your boss once had got many copies of ...
- idea配置热部署
第一步:添加依赖使用spring-boot-devtools提供的开发者工具spring-boot项目中引入如下依赖 <dependency><groupId>org.spri ...
- JSP (tomcat 内置对象)
1.内置对象: request: 方法:getParameter("txtName"):获取和页面上的name属性对象的value值 返回String ...
- 关于Web中列表页面的加载问题
2017年5月23日,天气晴朗.尽管昨晚睡的不踏实,好在今天心情还不是很糟糕,近来事情颇多,尤其是对于TA的改变,至少目前还是没有习惯,但时间将会解决一切,这点深有体会.此时此刻,又想起了苏东坡的那首 ...
- 高性能JavaScript(加载和执行)
当浏览器遇到 <script> 标签时,它是没办法知道 JavaScript 是否会向DOM中添加内容或引入其他元素,甚至关闭某一个标签.因此这个时候浏览器就会停止处理页面,先执行Java ...
- Java 根据出生日期计算年龄
1.把出生日期字符串转换为日期格式. public static Date parse(String strDate) throws ParseException { SimpleDateFormat ...
- JS--我发现,原来你是这样的JS(四)(看看变量,作用域,垃圾回收机制是啥)
一.介绍 这是红宝书(JavaScript高级程序设计 3版)的读书笔记第四篇,是红宝书第四章内容(主要是变量和作用域问题),当然其中还有我个人的理解.红宝书这本书可以说是难啃的,要看完不容易,挺厚的 ...
- css 中可以继承的属性
CSS中可以和不可以继承的属性一.无继承性的属性 1.display:规定元素应该生成的框的类型 2.文本属性: vertical-align:垂直文本对齐 text-decoration:规定添加到 ...
- ionic开发之Android的focus起作用,而iOS不起作用
基于ionic的iOS的hybird APP无法使用focus获取焦点和键盘的问题. 解决办法就是: 原本APP的配置文件config.xml里面默认有一句 这句话的大概意思就是键盘的显示需要用户去触 ...
- HBuilder开发iPad程序不能全屏显示的解决方法
HBuilder开发iPad程序不能全屏显示的解决方法: targets选择HBuilder=>Deployment Info=> devices选择Universal即可