4.2【文件IO操作】处理二进制文件

wav是一种音频文件的格式,音频文件为二进制文件
wav文件由头部信息和音频采样数据构成,前44个字节为头部信息,包括声道数,采样频率,PCM位宽等等,后面是音频采样数据
使用python,分析一个wav文件头部信息,处理音频数据
vlc demo.wav # 播放
open('demo.wav','rb')
info = f.read(44)
import struct
大端模式:左边为字节的高有效位,右边为低有效位
struct.unpack('h','\x01\x02') # (513,)   小端 \x0201  1+2*16^2
struct.unpack('>h','\x01\x02') # (258,)  大端  \x0102  2+16^2
数据在内存中的实际存储顺序有的是从大端(内存高地址)开始存储,有的是从小端(内存低地址)开始存储
网络传输规定,数据在传输时,必须统一采用大端法进行传输。
一般操作系统都是小端,而通讯协议是大端的,所以我们在传输数据时,需要将数据转码
struct.unpack方法介绍:
    unpack(format, buffer)
    format:解析类型
    buffer:需要解析二进制串
    例: 构造两个字节的二进制串,format默认为小端字节顺序,
        h为16为,结果:1+2*16^2=513
        struct.unpack('h', b'\x01\x02')
        指定format为大端字节顺序,结果:16^2+2=258
        struct.unpack('>h', b'\x01\x02')


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值