Python提取wav格式文件的data并转为十六进制格式重定向输出

代码

import struct
import os
import sys
if __name__ == '__main__':
    # wav文件
    filepath='welcome_01.wav'
    # 打开二进制文件
    bin_file = open(filepath, 'rb')
    # 跳到data
    bin_file.seek(42,0)
    # 读取data大小
    data=bin_file.read(4)
    # 转10进制,小端对齐
    size = int().from_bytes(data, byteorder="little", signed=True)
    # 文件个数
    num=0
    # 每次写入个数
    each_size=10240
    print(size)

    # 循环写入 each_size 个字节到 output.txt
    while size>=each_size:
        # 重定向输出到指定文件
        file = open('output{:d}.txt'.format(num), 'w')
        sys.stdout = file
        # 读取指定个数字节
        data = bin_file.read(each_size)
        print("size ",10240)
        for i, index in zip(data, range(1, each_size + 1)):
            # 每 16 个 字节换行一次
            if index % 16 == 0:
                print("0x%02x ," % i)
            else:
                print("0x%02x ," % i, end='')

        file.close()
        size-=each_size
        num+=1

    # 写入剩余字节
    file = open('output{:d}.txt'.format(num), 'w')
    sys.stdout = file
    data = bin_file.read(size)
    print("size ", size)
    for i, index in zip(data, range(1, size + 1)):
        if index % 16 == 0:
            print("0x%02x ," % i)
        else:
            print("0x%02x ," % i, end='')

    file.close()
    bin_file.close()


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值