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