#!/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处理二进制数据的方法相关推荐

  1. python中时间处理去空格去冒号_Python实用日期时间处理方法汇总

    原则, 以datetime为中心, 起点或中转, 转化为目标对象, 涵盖了大多数业务场景中需要的日期转换处理 步骤: 1. 掌握几种对象及其关系 2. 了解每类对象的基本操作方法 3. 通过转化关系转 ...

  2. python十进制小数转二进制_在python中如何将十进制小数转换成二进制

    在python中如何将十进制小数转换成二进制 在最近的学习中发现博客园里面找不到如何在python中如何将十进制小数转换成二进制,所以我用土方法写了一个超级简单的转换方法(不过转换出来的数只是形式上是 ...

  3. python中json与str转换和出现KeyError的解决方法

    python中json与str转换和出现KeyError的解决方法 json转str str转json KeyError的解决方法 json转str json格式的数据其实就是dict类型的数据,如图 ...

  4. Python中如何查看(打印输出)变量的数据类型

    1 致谢 感谢网友IT技术随笔提供的帮助 链接如下: https://www.cnblogs.com/wushuaishuai/p/7739728.html 2 问题描述 今天在学习如何用OpenCV ...

  5. python中xml格式的转换

    文章目录 python中xml格式的转换 1. 基于DOM. 2. 基于ElementTree 使用dicttoxml xmltodict等模块 1.解析xml文件: 2.字典转换为xml文件: 3. ...

  6. python中numpy数组和字符串互转(互转后数据完全一致)

    python中numpy数组和字符串互转(互转后数据完全一致) 代码: import numpy as np # 创建数组arr arr = np.array([ -1.8264365 , -0.63 ...

  7. python中、文件最重要的功能是( )和接收数据_170道面试题,python让你前尘毋庸

    所有题目 语言特性 1.谈谈对 Python 和其他语言的区别 2.简述解释型和编译型编程语言 3.Python 的解释器种类以及相关特点? 4.说说你知道的Python3 和 Python2 之间的 ...

  8. 关于python中的字符串映射转换

    关于python中的字符串映射转换 利用Python字符串映射的方式来快速准确对Python字符串中对应的字符串进行替换,方法主要有两种: 第一种:maketrans方法 maketrans方法的参数 ...

  9. python中如何进行温度转换_python中温度单位转换的实例方法

    温度有摄氏度和华氏度两个单位,我们通常使用的是摄氏度,对于转换成华氏度,很多小伙伴记不住公式.作为万能的计算机,它是可以帮助我们解决温度单位转换的问题.本文主要演示python中进行温度单位转换的代码 ...

  10. python中使用什么注释语句和运算_Python基础知识

    本文标识 :Python_1 本文编辑 : Jack 风 编程工具 : Anaconda.Pycharm 阅读时长 : 12分钟 Python基础学习为什么那么多培训机构?那么多的程序员呢? 很简单啊 ...

最新文章

  1. 参加51CTO学院软考培训,我通过啦!
  2. 十三、java_GUI
  3. Python知识点笔记-列表list、元组tuple和dict类型
  4. ElementUI中的el-table怎样实现绑定对象数组时每一列不同控件的动态数据绑定
  5. cv2 python3.5 linux,ubuntu 16.04 安装 opencv3.2.0 with python 3.5
  6. [项目过程中所遇到的各种问题记录]编辑器篇——FCKeditor自定义上传路径配置...
  7. python数值计算库Numpy学习之—np.linalg.norm(求范数)
  8. python selenium page object_Selenium Page Object 自动化测试框架-Page Object设计
  9. 边框虚线html代码是,网页虚线代码/表格边框虚线代码大全
  10. 2018年第九届蓝桥杯真题Java B组
  11. DELL_R820服务器安装 server2008 R2x64缺少所需的CDDVD驱动器设备驱动解决方法
  12. NoSQL:文档数据库
  13. 加了尾注怎么添加新页_如何在毕业论文利用尾注添加参考文献之后再续正文
  14. Cypress使用教程
  15. 完全免费的小程序制作教程
  16. Python书籍阅读与记录 6.17 I 文件和异常
  17. PMP考试报名中项目经验该怎样填写?
  18. 油猴相关玩法-下载,脚本下载
  19. 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式
  20. 实战为上!深入解析20个运维命令

热门文章

  1. CFile和CStdioFile的区别以及‘\r’、‘\r\n’
  2. jsp基础语法【05】_跳转指令
  3. ThinkPad系列笔记本待机恢复后,双击我的电脑始终运行而无法打开
  4. 2009年北京突然的一场雪
  5. C# Tips 2------ToolStripSplitButton's 'Checked' property
  6. [转载]安装Oracle11gR2先决条件检查失败的详细解决处理过程
  7. 《金蝶ERP—K/3标准财务模拟实训(11.X版)》——第1章 金蝶K/3标准财务介绍 1.1 金蝶K/3标准财务系统介绍...
  8. jQuery 3教程(三):jQuery集合
  9. [资料]Keychain 获取设备唯一
  10. qt关于添加模块的说明