python系列教程125——struct模块
原创
©著作权归作者所有:来自51CTO博客作者人工智能AI技术的原创作品,请联系作者获取转载授权,否则将追究法律责任
声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!
Python的标准库中的struct模块能够构造和解析二进制数据。从某种意义上说,它也是一个数据转换工具。
下面创建一个二进制数据文件,用’wb’(写入二进制)模式打开它,并将一个格式化字符串和几个Python对象传给struct。
>>> F = open('data.bin','wb')# Open binary output file
>>> import struct
>>> data = struct.pack('>i4sh',7,'spam',8) # Make packed binary data
>>> data
b'\x00\x00\x00\x07spam\x00\x08'
>>> F.write(data) # Write byte string
>>> F.close()
下面的代码将值读取出来并解析为普通Python的对象。
>>> F = open('data.bin','rb')
>>> data = F.read() # Get packed binary data
>>> data
b'\x00\x00\x00\x07spam\x00\x08'
>>> values = struct.unpack('>i4sh',data) # Convert to Python objects
>>> values
(7,'spam',8)