python 常用模块
来源:互联网 发布:客户生日提醒软件 编辑:程序博客网 时间:2024/06/06 02:48
总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。
python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。
import struct
a=12.34
#将a变为二进制
bytes=struct.pack('i',a)
此时bytes就是一个string字符串,字符串按字节同a的二进制存储内容相同。
再进行反操作
现有二进制数据bytes,(其实就是字符串),将它反过来转换成python的数据类型:
a,=struct.unpack('i',bytes)
注意,unpack返回的是tuple
所以如果只有一个变量的话:
bytes=struct.pack('i',a)
那么,解码的时候需要这样
a,=struct.unpack('i',bytes) 或者 (a,)=struct.unpack('i',bytes)
如果直接用a=struct.unpack('i',bytes),那么 a=(12.34,),是一个tuple而不是原来的浮点数了。
如果是由多个数据构成的,可以这样:
a='hello'
b='world!'
c=2
d=45.123
bytes=struct.pack('5s6sif',a,b,c,d)
此时的bytes就是二进制形式的数据了,可以直接写入文件比如 binfile.write(bytes)
然后,当我们需要时可以再读出来,bytes=binfile.read()
再通过struct.unpack()解码成python变量
a,b,c,d=struct.unpack('5s6sif',bytes)
'5s6sif'这个叫做fmt,就是格式化字符串,由数字加字符构成,5s表示占5个字符的字符串,2i,表示2个整数等等,下面是可用的字符及类型,ctype表示可以与python中的类型一一对应。
{
}
在Python中,我们习惯这样遍历:
这样遍历取不到item的序号i,所有就有了下面的遍历方法:
其实,如果你了解内置的enumerate函数,还可以这样写:
描述
choice() 方法返回一个列表,元组或字符串的随机项。
import random
print "choice([1, 2, 3, 5, 9]) : ",random.choice([1,2, 3, 5, 9])
print "choice('A String') : ",random.choice('A String')
以上实例运行后输出结果为:
choice([1, 2, 3, 5, 9]) : 2choice('A String') : n
- python 常用模块
- python OS模块
- python os模块[转]
- python 详解re模块
- python模块 - 常用模块推荐
- 常用的python模块
- 常用的python模块
- python常用模块
- Python常用模块
- Python常用模块资料
- Python常用模块
- Python 常用模块
- Python常用模块
- python常用模块
- 常用的python模块
- Python常用模块资料
- Python常用模块
- Python常用模块资料
- 再读C++ primer,提取重点
- systemverilog 的 OOP
- Makefile 笔记
- Primetime 的使用
- python 语法笔记
- python 常用模块
- python PIP 或者&…
- PYTHON 的 YAML 和PKL
- I2C 的开漏和上拉电阻
- Python 处理文件例程
- Git 的有用操作 (更新)
- PyQt学习笔记(7)——Qt Design…
- linux 将模块编译进内核
- python super 继承