需求:
給定一個文件夾路徑,遍歷該文件夾內的全部文件以及子文件夾內的文件,當全部後綴名爲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)