比如,有许多mp3文件,每个文件前都有一段固定时间长度的广告,我想把讨厌的广告批量处理掉,然后在另外一个文件夹内批量的生成指定比特率的mp3文件,我该怎么办?
完成后,生成转换后的文件夹。
经苦心研究,得出以下程序。来,上才艺!
from pydub import AudioSegment
import os
from multiprocessing import Pool
def worker(filename):
###定义工作函数
try:
path = r'D:\\桌面\\郝万山讲中医内科\\测试\\'
# print(path)
path_out = path + '转换后\\'
print(path_out)
if not os.path.exists(path_out):
os.mkdir(path_out)
used_name = path + filename
print(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:
## 跳过一些系统隐藏文档
pass
if __name__ == '__main__':
path = r'D:\\桌面\\郝万山讲中医内科\\测试\\'
converted_count = 0
convertlist = []
for filename in 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)