需求:
给定一个文件夹路径,遍历该文件夹内的所有文件以及子文件夹内的文件,当所有后缀名为wav格式的文件转换为ogg格式的文件.
import os # 获取目录下的所有文件列表import fnmatch # 文件格式筛选模块,筛选指定格式文件- #遍历
def dirlist(path, allfile):filelist = os.listdir(path)for filename in filelist:filepath = os.path.join(path, filename)if os.path.isdir(filepath):dirlist(filepath, allfile)elif fnmatch.fnmatch(filepath,'*.wav'):#判断文件格式allfile.append(filepath)#allfile.append(' ')print('*'*40,filepath,' ')return allfile#格式转换def RunScript(fileList) :print('hello world start:')readf = open("E:\py\readfilename.txt", 'w+') #输出所有读入的文件writef = open("E:\py\writefilename.txt", 'w+') #输出所有创建并写入的文件code = "ffmpeg -i "codeMid = " -acodec libvorbis "for filename in fileList:input = filenameprint('*'*40,' ','Begin input = ',input,' ')subname = input.split('.')output = subname[0] + ".ogg"finishcode = code + input + codeMid + outputos.system(finishcode)print('End output = ',output,' ')print(input,file=readf)print(output,file=writef)print('hello world end')#主程序运行if __name__ =='__main__':fff = open("E:\py\allfile.txt", 'w+')fileDir = r'G:SVNworking runcexe esourcesmediaaudio'allfile = []dirlist(fileDir,allfile)for name in allfile:print(name,file=fff)RunScript(allfile)