Python_struct模块操作二进制文件

复制代码
 1 '''
 2 使用struct模块写入二进制文件
 3 '''
 4 import struct
 5 n=130000000
 6 x=96.45
 7 b=True
 8 s='a1@中国'
 9 sn=struct.pack('if?',n,x,b) #序列化,i表示整数,f表示实数,?表示逻辑值
10 f=open('sample_struct.dat','wb')
11 f.write(sn)
12 f.write(s.encode()) #字符串需要编码为字节串再写入文件
13 f.close()
14 
15 '''
16 使用struct模块读取二进制文件的内容
17 '''
18 import struct
19 f=open('sample_struct.dat','rb')
20 sn=f.read(9)
21 tu=struct.unpack('if?',sn)  #使用指定格式反序列化
22 print(tu)
23 print('n=',n,'x=',x,'b=',b)
24 s=f.read(9)
25 s=s.decode()    #字符串解码
26 print('s=',s)    #字符串解码
27 
28 '''
29 读取字节的长度
30 '''
31 import struct
32 st=struct.pack('if?',13000,56.0,True)
33 print(len(st))
34 x='a1@中国'
35 print(len(x.encode()))
#输出的结果

 (130000000, 96.44999694824219, True)

  n= 130000000 x= 96.45 b= True
  s= a1@中国
  9
  9

复制代码
posted @   JustLittle  阅读(2847)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· Java轻量级代码工程
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战
点击右上角即可分享
微信分享提示