# encoding=utf8 #-*-coding:utf-8 -*- #pip install natsort import wave import os import time import natsort # infiles = ["你好_1.mp3", "不好_1.mp3"] # outfile = "out_put.mp3" # # data= [] # for infile in infiles: # w = wave.open(infile, 'rb') # data.append( [w.getparams(), w.readframes(w.getnframes())] ) # w.close() # # output = wave.open(outfile, 'wb') # output.setparams(data[0][0]) # output.writeframes(data[0][1]) # output.writeframes(data[1][1]) # output.close() def hebing(output_path,yinpin_houzui="mp3"): allMp3Files = [] # 开始合并之前,先重命名文件夹下的文件,一般是做去除空格处理 # reName(orginalFilePath) # 合并多个mp3的函数 for parent, dirnames, filenames in os.walk(output_path): for filename in filenames: print(filename) # 对文件进行重命名 oldFilePath = os.path.join(parent, filename) wenjain_houzu = os.path.splitext(filename)[-1] #获取文件后缀 print(wenjain_houzu) if yinpin_houzui.lower() in wenjain_houzu.lower(): allMp3Files.append(oldFilePath) # 重命名文件夹下的内容,一般是做去除空格处理 print(allMp3Files) # 因为要用管道命令 ffmpeg -i "concat:{}" -codec copy output.mp3,所以要将列表分割为以|分隔的字符串 # 实现排序 # pattern_number_sort = '_?(\d*?).mp3' sortedfileList = natsort.natsorted(allMp3Files) # 文件名排序 print(sortedfileList) infiles = sortedfileList today_time = time.strftime("%Y-%m-%d", time.localtime(time.time())) wenjiajia = output_path.split("\\")[-1] outfile = "%s\\%s_hebing_%s.mp3" % (output_path,wenjiajia,today_time) print(outfile) data = [] for infile in infiles: w = wave.open(infile, 'rb') data.append([w.getparams(), w.readframes(w.getnframes())]) w.close() print("data:") # print(data) print(len(data)) # print(data[0][0]) # print(data[1][1]) output = wave.open(outfile, 'wb') output.setparams(data[0][0]) for i in range(0,len(data)): #合并各个音频 output.writeframes(data[i][1]) output.close() if __name__ == '__main__': genmulu = r"D:\PycharmProjects\xiaoxiaomu\小工具" wenjianjia_list = [ '1-第二部分_第一章', '2-第一部分-第一章', '3-第一部分-第二和三章', '4-第一部分-第四章', '5-第一部分_第五章', '6-第一部分_第六章', '7-第一部分_第七章', ] zhangjie_list = [] for one in wenjianjia_list: zhangjie_list.append("%s\\%s"%(genmulu,one)) print(zhangjie_list) for one_out_path in zhangjie_list: output_path = one_out_path # 输出目录 hebing(output_path)
浙公网安备 33010602011771号