python服务器传输wav文件,Python处理wav文件(二进制文件读写)
wav文件信息格式图
前44字节为头信息,后面的为音频数据。
import struct
import array
# 读取wav文件,二进制要记得用b
file = open('Love Story.wav', 'rb')
# 获取前44个字节,文件信息。
info = file.read(44)
# 获取文件大小, 将指针移动到文件末尾
file_size = file.seek(0, 2)
# 计算数组大小
n = (file_size - 44) // 2
# 生成buf
buf = array.array('h', (0 for _ in range(n)))
# 将文件指针定位到44
file.seek(44)
# 将数据读入到buf中
file.readinto(buf)
# 将声音变小
for i in range(n):
buf[i] //= 10
# 写入数据
f = open('demo.wav', 'wb')
f.write(info)
buf.tofile(f)
# 关闭文件
f.close()
file.close()
print('完成')
二进制数据可以用readinto,读入到提前分配好的buffer中,便于数据处理。
解析二进制数据可以使用标准库中的struct模块的unpack方法
比如:查看声道数
struct.unpack('h', file[22:24])
查看采样频率
struct.unpack('i', file[24:28])
python服务器传输wav文件,Python处理wav文件(二进制文件读写)相关推荐
- Python服务器开发一:python基础
Python服务器开发一:python基础 Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上 ...
- python 服务器_NeurDICOM——DICOMweb服务器端Python实现范例
在上一篇文章的"如何实现DICOMweb?"部分,提到了有一套Python版本的DICOMweb服务器端开源代码,NeurDICOM.这里书接上文,对这个开源框架做一个介绍.包括这 ...
- C语言基础14——文件操作。文本文件或二进制文件读写。通讯录的改造。文件缓冲区讲解
目录 为什么使用文件? 什么是文件? 文件的打开和关闭 文件指针 文件的打开和关闭 文件的打开方式 流 重定义文件 文件流 文件的顺序读写 以字符形式读写文本文件 fputc()函数 fgetc()函 ...
- Verilog实现生成BMP文件(BMP文件格式,二进制文件读写)
Git地址: https://gitee.com/whik/bmp_gen_c_and_verilog/tree/master/verilog BMP文件格式详解参考: BMP文件格式详解 C语言实现 ...
- python 服务器_只要一行Python代码,就能搭建一个共享文件局域网服务器
不知道大家有没有遇到过这样的情况,在做项目或者研发的时候,迫切想要将一个文件传输给另一台电脑,却找不到U盘,于是麻烦的通过登陆qq.微信等社交软件,或者邮箱等工具进行传输,十分麻烦,让人苦恼. 都说P ...
- python socket清空接受区_原始Python服务器
之前我的Python教程中有人留言,表示只学Python没有用,必须学会一个框架(比如Django和web.py)才能找到工作.而我的想法是,掌握一个类似于框架的高级工具是有用的,但是基础的东西可以让 ...
- C语言实现生成BMP图片文件(BMP文件格式,二进制文件读写)
Git地址: https://gitee.com/whik/bmp_gen_c_and_verilog/tree/master/c BMP文件格式详解参考: Verilog实现生成BMP文件(BMP文 ...
- 服务器获取客户端电脑文件,python实现获取客户机上指定文件并传输到服务器的方法 -电脑资料...
作者:上大王 字体:[增加 减小] 类型:转载 这篇文章主要介绍了python实现获取客户机上指定文件并传输到服务器的方法,涉及Python实现C/S架构程序与socket程序的使用技巧,需要的朋友可 ...
- python pcm,python pcm音频添加头转成Wav格式文件的方法
如下所示: ''''' add Head Infomation for pcm file ''' import sys import struct import os __author__ = 'bo ...
最新文章
- ArduinoYun教程之OpenWrt-Yun与CLI配置Arduino Yun
- 世界首个2nm制程芯片公布!这次IBM跑在了台积电三星英特尔前面
- linux远程脚本事例,ssh远程执行命令方法和Shell脚本实例
- 网络编程中的超时检测
- C#LeetCode刷题之#496-下一个更大元素 I(Next Greater Element I)
- SQLi LABS Less 25 联合注入+报错注入+布尔盲注
- 素描滤镜c语言算法,python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现).pdf...
- web系统找回密码流程
- 使用Python实现生产者消费者问题
- 关于网上商城开发的随笔记录2
- MyBatis源码阅读(六) ---mapper方法具体执行流程分析
- 计算机毕设周记20篇,电子与计算机毕业设计周记.doc
- Android 代码实现shape(GradientDrawable详解)
- Dialog dismiss 失效的问题,
- CryEngine GameLaucher 和Editor
- 数据可视化技术有什么特点
- Frps一键安装脚本,带Frpc Windows便捷启动脚本
- 异步获取到图虫上的图片
- 计算机二级web知识点,计算机二级WEB考试主要考哪些内容?
- office邮箱不能预览附件问题
热门文章
- 找树左下角的值+路径总和+从前序和中序遍历序列构造二叉树(day18*)
- 2019-2020-2 20175212童皓桢《网络对抗技术》 Exp9 Web安全基础
- C# 一些學習小筆記及技巧
- 六一儿童节 | TcaplusDB祝大小朋友节日快乐
- 学术会议将变革?Hinton 呼吁 AI 界召开远程会议
- PHP ‘Array and string offset access syntax with curly braces is deprecated’ 错误的原因和解决办法...
- 云e办学习笔记(十五)Redis学习以及相关部署
- R语言|导入excel数据
- Python实现文件则自动分类
- 父爱动画代码python_python表白实现代码(可视化与动画版)