比如,有许多mp3文件,每个文件前都有一段固定时间长度的广告,我想把讨厌的广告批量处理掉,然后在另外一个文件夹内批量的生成指定比特率的mp3文件,我该怎么办?
完成后,生成转换后的文件夹。
经苦心研究,得出以下程序。来,上才艺!
from pydubimport AudioSegmentimport osfrom multiprocessingimport Pooldefworker(filename):###定义工作函数try:
path=r'D:\\桌面\\郝万山讲中医内科\\测试\\'# print(path)
path_out= path+'转换后\\'print(path_out)ifnot os.path.exists(path_out):
os.mkdir(path_out)
used_name= path+ filenameprint(used_name)## 因为文件名里面包含了文件的后缀,所以重命名的时候要加上
new_name= path_out+ filename
input_music= AudioSegment.from_mp3(used_name)# 截取音频后31000毫秒 = 31秒
output_music= input_music[31000:]# 保存音频,指定音频比特率为64k
output_music.export(new_name, bitrate="64k")print(new_name+'完成!')except:## 跳过一些系统隐藏文档passif __name__=='__main__':
path=r'D:\\桌面\\郝万山讲中医内科\\测试\\'
converted_count=0
convertlist=[]for filenamein os.listdir(path):if filename.endswith(".mp3"):
convertlist.append(filename)
converted_count+=1# print(convertlist)#多线程语句(我也不会,直接照搬别人的,竟然成功啦)
p= Pool(processes=min(converted_count, os.cpu_count()))
p.map(worker, convertlist)