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 相关文章推荐
python操作CouchDB的方法
Oct 08 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
设计模式中的原型模式在Python程序中的应用示例
Mar 02 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
django3.02模板中的超链接配置实例代码
Feb 04 Python
在Windows上安装和配置 Jupyter Lab 作为桌面级应用程序教程
Apr 22 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
python文本处理的方案(结巴分词并去除符号)
May 26 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
模仿OSO的论坛(四)
2006/10/09 PHP
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
PHP 访问数据库配置通用方法(json)
2018/05/20 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
js 覆盖和重载 函数
2009/09/25 Javascript
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
node.js中的console.log方法使用说明
2014/12/09 Javascript
NodeJs基本语法和类型
2015/02/13 NodeJs
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
BootStrap Table实现server分页序号连续显示功能(当前页从上一页的结束序号开始)
2017/09/12 Javascript
vue中动态添加class类名的方法
2018/09/05 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
[03:45]Newbee战队出征西雅图 决战2016国际邀请赛
2016/08/02 DOTA
python发送邮件功能实现代码
2016/07/15 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
详解PyCharm安装MicroPython插件的教程
2019/06/24 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
使用HTML5里的classList操作CSS类
2016/06/28 HTML / CSS
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
大学考试作弊检讨书
2014/01/30 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
体育教学随笔感言
2014/02/24 职场文书
大学生赌博检讨书
2014/09/22 职场文书
乡镇团委工作总结2015
2015/05/26 职场文书
职位证明模板
2015/06/23 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫