python处理二进制数据的方法


Posted in Python onJune 03, 2015

本文实例讲述了python处理二进制数据的方法。分享给大家供大家参考。具体如下:

#!/usr/env/env python 
#-*- coding: cp936 -*- 
''''' 
add Head Infomation for pcm file 
''' 
import sys 
import struct 
import os 
__author__ = 'bob_hu, hewitt924@gmail.com' 
__date__ = 'Dec 19,2011' 
__update__ = 'Dec 19,2011' 
def geneHeadInfo(sampleRate,bits,sampleNum): 
  ''''' 
  生成头信息,需要采样率,每个采样的位数,和整个wav的采样的字节数 
  ''' 
  rHeadInfo = '\x52\x49\x46\x46' 
  fileLength = struct.pack('i',sampleNum + 36) 
  rHeadInfo += fileLength 
  rHeadInfo += '\x57\x41\x56\x45\x66\x6D\x74\x20\x10\x00\x00\x00\x01\x00\x01\x00' 
  rHeadInfo += struct.pack('i',sampleRate) 
  rHeadInfo += struct.pack('i',sampleRate * bits / 8) 
  rHeadInfo += '\x02\x00' 
  rHeadInfo += struct.pack('H',bits) 
  rHeadInfo += '\x64\x61\x74\x61' 
  rHeadInfo += struct.pack('i',sampleNum) 
  return rHeadInfo 
if __name__ == '__main__': 
  if len(sys.argv) != 5: 
    print "usage: python %s inFile sampleRate bits outFile" % sys.argv[0] 
    sys.exit(1) 
  fout = open(sys.argv[4],'wb') #用二进制的写入模式 
  #fout.write(struct.pack('4s','\x66\x6D\x74\x20'))
  #写入一个长度为4的串,这个串的二进制内容为 66 6D 74 20 
  #Riff_flag,afd,fad,afdd, = struct.unpack('4c',fin.read(4))
  #读入四个字节,每一个都解析成一个字母 
  #open(sys.argv[4],'wb').write(struct.pack('4s','fmt '))
  #将字符串解析成二进制后再写入 
  #open(sys.argv[4],'wb').write('\x3C\x9C\x00\x00\x57')
  #直接写入二进制内容:3C 9C 00 00 57 
  #fout.write(struct.pack('i',6000)) #写入6000的二进制形式 
  #check whether inFile has head-Info 
  fin = open(sys.argv[1],'rb') 
  Riff_flag, = struct.unpack('4s',fin.read(4)) 
  if Riff_flag == 'RIFF': 
    print "%s 有头信息" % sys.argv[1] 
    fin.close() 
    sys.exit(0) 
  else: 
    print "%s 没有头信息" % sys.argv[1] 
    fin.close() 
    #采样率 
    sampleRate = int(sys.argv[2]) 
    #bit位 
    bits = int(sys.argv[3]) 
    fin = open(sys.argv[1],'rb') 
    startPos = fin.tell() 
    fin.seek(0,os.SEEK_END) 
    endPos = fin.tell() 
    sampleNum = (endPos - startPos) 
    print sampleNum 
    headInfo = geneHeadInfo(sampleRate,bits,sampleNum) 
    fout.write(headInfo) 
    fin.seek(os.SEEK_SET) 
    fout.write(fin.read()) 
    fin.close() 
    fout.close()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Win7上搭建Cocos2d-x 3.1.1开发环境
Jul 03 Python
Python编写百度贴吧的简单爬虫
Apr 02 Python
Python处理PDF及生成多层PDF实例代码
Apr 24 Python
Python基础之getpass模块详细介绍
Aug 10 Python
win7 x64系统中安装Scrapy的方法
Nov 18 Python
python3实现钉钉消息推送的方法示例
Mar 14 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python 读取数据库并绘图的实例
Dec 03 Python
解决pycharm同一目录下无法import其他文件
Feb 12 Python
Python基于字典实现switch case函数调用
Jul 22 Python
详解Pycharm与anaconda安装配置指南
Aug 25 Python
Django migrate报错的解决方案
May 20 Python
Python读写配置文件的方法
Jun 03 #Python
python操作ssh实现服务器日志下载的方法
Jun 03 #Python
Python实现建立SSH连接的方法
Jun 03 #Python
解密Python中的描述符(descriptor)
Jun 03 #Python
python实用代码片段收集贴
Jun 03 #Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 #Python
python通过ssh-powershell监控windows的方法
Jun 02 #Python
You might like
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php封装的单文件(图片)上传类完整实例
2016/10/18 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
JavaScript获取图片的原始尺寸以宽度为例
2014/05/04 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
JS自定义对象实现Java中Map对象功能的方法
2015/01/20 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
[55:45]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第三场 8.24
2019/09/10 DOTA
Python学习笔记整理3之输入输出、python eval函数
2015/12/14 Python
详解python中的装饰器
2018/07/10 Python
Flask实现跨域请求的处理方法
2018/09/27 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
关于pytorch处理类别不平衡的问题
2019/12/31 Python
Python底层封装实现方法详解
2020/01/22 Python
Python爬虫谷歌Chrome F12抓包过程原理解析
2020/06/04 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
Nasty Gal英国:美国女性服饰销售网站
2021/03/02 全球购物
DBA的职责都有哪些
2012/05/16 面试题
英文版餐饮业求职信
2013/10/18 职场文书
计算机专业毕业生自荐信
2013/12/31 职场文书
财务科科长岗位职责
2014/03/10 职场文书
赔偿协议书范本
2014/04/15 职场文书
开工典礼策划方案
2014/05/23 职场文书
关于旅游的活动方案
2014/08/15 职场文书
安全生产隐患排查制度
2015/08/05 职场文书
python实战之一步一步教你绘制小猪佩奇
2021/04/22 Python
Python深度学习之实现卷积神经网络
2021/06/05 Python