当前位置:网站首页>文件内音频的时长统计并生成csv文件
文件内音频的时长统计并生成csv文件
2022-08-05 05:25:00 【回首思】
目录
一、需求
请编写 Python 脚本,统计附属压缩文件“wav.zip”中音频的时长,并将统计结果保存在与 “wav.zip”同级目录下,结果文件中音频的时长由高往低的顺序依次排列,A 列为音频文件名称,B 列为 时长(精确到毫秒,时长相同按文件的 MD5 值排序)
二、相关库
- os
- librosa
- hashlib
hanshlib安装时报错,解决办法:更改版本号即可这里用的是0.8.0
pip install hanshlib==0.8.0
- pandas
三、完整代码
因为作者偷懒所以直接放代码,具体步骤:
- 使用os把文件夹内所有的文件名遍历出来
- 把文件名拼上路径
- 用hashlib给文件生成对应的MD5值
- 调用librosa.get_duration来取得音频时长
- 用pandas对结果根据时长和MD5值来排序
- pandas存储到csv文件里
import os
import librosa
import hashlib
import pandas as pd
file_list = []
data_list = []
def get_duration_mp3_and_wav(file_path):
# 文件夹路径file_path是文件名os自动遍历的
file_paths = f'./wav2count/{file_path}'
md5 = hashlib.md5()
f = open(file_paths,'rb')
md5.update(f.read())
f.close()
MD5 = md5.hexdigest()
duration = librosa.get_duration(filename=file_paths)
data_list.append([file_path,duration,MD5])
# 文件夹路径
for a,s,k in os.walk('./wav2count'):
file_list.append(k)
for i in file_list[0]:
get_duration_mp3_and_wav(i)
data = pd.DataFrame(data_list)
datas = data.sort_values([1,2],ascending=False)
# 保存的文件名
datas.to_csv('./wav_result.csv')
四、一些问题
我只试过wav文件,mp3文件一个也可以,前提是文件夹里的文件全是要参与的文件,安装库的时候遇到问题简易回退一个大版本0.9.0=>0.8.0实际体验没多大区别。
边栏推荐
- LaTeX笔记
- NB-IOT智能云家具项目系列实站
- LeetCode中常用语言的一些基本方法记录
- Will intelligent operation and maintenance replace manual operation and maintenance?
- 记录vue-页面缓存问题
- 网络协议基础-学习笔记
- Insight into the general trend of the Internet, after reading this article, you will have a thorough understanding of Chinese domain names
- 摆脱极域软件的限制
- 产品学习资料
- 大小屏适配
猜你喜欢
Chengyun Technology was invited to attend the 2022 Alibaba Cloud Partner Conference and won the "Gathering Strength and Going Far" Award
NAT experiment
初识网页与浏览器
el-autocomplete use
input详解之文件上传
Operation and maintenance engineer, come and pick up the wool
The use of three parameters of ref, out, and Params in Unity3D
[问题已处理]-jenkins流水线checkout超时
Q 2020, the latest senior interview Laya soul, do you know?
Teach you simple steps to achieve industrial raspberries pie properly installed RS232 USB drive
随机推荐
Take you in-depth understanding of cookies
Xiaodu Xiaodu is here!
cs231n学习记录
config.js相关配置汇总
Passing parameters in multiple threads
Dry!Teach you to use industrial raspberries pie combining CODESYS configuration EtherCAT master station
错误记录集锦(遇到则记下)
Complete mysql offline installation in 5 minutes
Alibaba Cloud Video on Demand
[问题已处理]-jenkins流水线checkout超时
Met with the browser page
Disk management and file systems
Mina断线重连
Tencent greetings function SCF - entry instructions
Nacos配置服务的源码解析(全)
Growth: IT Operations Trends Report
浏览器存储WebStorage
获取预训练模型的网络输入尺寸
【FAQ】CCAPI兼容EOS相机列表(2022年8月 更新)
The method of using ROS1 bag under ROS2