需求:
给定一个文件夹路径,遍历该文件夹内的全部文件以及子文件夹内的文件,当全部后缀名为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('\n') print('*'*40,filepath,'\n') 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 = filename print('*'*40,'\n','Begin input = ',input,'\n') subname = input.split('.') output = subname[0] + ".ogg" finishcode = code + input + codeMid + output os.system(finishcode) print('End output = ',output,'\n') 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\trunc\exe\resources\media\audio' allfile = [] dirlist(fileDir,allfile) for name in allfile: print(name,file=fff) RunScript(allfile)