zoukankan      html  css  js  c++  java
  • python--struct

     当我们在 Python 中跟二进制数据打交道的时候,就要用到 struct 这个模块了。struct 模块为 Python 与 C 的混合编程,处理二进制文件以及进行网络协议交互提供了便利

    格式字符串表:

    import os
    import struct
    
    '''
    数据格式为
    姓名         年龄   性别   职业
    liming      18     男    教师
    '''
    
    fp = open('test.bin','wb')
    name = 'lily'.encode('utf-8')
    age = 18
    sex = 'female'.encode('utf-8')
    job = 'teacher'.encode('utf-8')
    x=struct.pack('>4si6s7s', name,age,sex,job)  #把各个变量按顺序转换成字节字符串
    #参数1  格式字符串   看格式字符串表
    #4s   4个字符串字节
    # > 表示大端保存;< 表示小端保存
    """
    小端:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址。
    大端:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址
    默认采用小端
    """
    fp.write(x)
    fp.flush()
    fp.close()
    
    # 将文件中写入的数据按照格式读取出来
    fd = open('test.bin','rb')
    # 21 = 4 + 4 + 6 + 7
    a=fd.read(23)
    x=struct.unpack('>4si6s7s',a)  #还原变量值
    #(b'lily', 18, b'female', b'teacher')
    
    fd.close()
    
    i=struct.calcsize('ii')  #计算格式字符串所对应的结果的长度
    
    print(i)

  • 相关阅读:
    【翻译】JavaScript循环和作用域
    【js-xlsx和file-saver插件】前端导出数据到excel
    H5混合开发进阶
    一分钟搞定vue全局注册事件eventBus
    cordova+vue构建app进阶
    LayaBox进阶之UI管理器
    Layabox进阶之资源加载
    H5混合开发进阶之inspect调试
    认识json
    正则学习记录
  • 原文地址:https://www.cnblogs.com/liming19680104/p/12156335.html
Copyright © 2011-2022 走看看