比如,有许多mp3文件,每个文件前都有一段固定时间长度的广告,我想把讨厌的广告批量处理掉,然后在另外一个文件夹内批量的生成指定比特率的mp3文件,我该怎么办?
完成后,生成转换后的文件夹。
经苦心研究,得出以下程序。来,上才艺!
from pydub import AudioSegmentimport osfrom 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: ## 跳过一些系统隐藏文档 passif __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)