|

楼主 |
发表于 2022-1-3 12:39:36
|
显示全部楼层
依旧不行,算了,后面再想办法试试吧,先继续学了,自己用起来直接idle先用着,下边是代码
- from pydub import AudioSegment
- from tkinter import *
- import tkinter.filedialog as tf
- from tkinter import ttk
- import os
- #转换函数
- def trans_mp3_to_every(filepath,filepath_n,geshi_o,geshi):
- name='AudioSegment.from_'+geshi_o #参数名
- #print(name)
- #eval转换动态字符串为方法
- song=eval(name)(filepath)
- # print(filepath_n+'.'+geshi)
- song.export(filepath_n+'.'+geshi,format=geshi)
- def main():
- #增加临时系统变量
- os.environ['PATH']=os.getcwd()+'\\bin'+os.pathsep+os.environ['PATH']
- root=Tk()
- root.title('转换音频')
- root.geometry('338x200')
- group =LabelFrame(root)
- group.grid(padx=5,pady=5)
- #选择待转换的文件
- Label(group,text='原文件:').grid(row=0,padx=5,pady=5,sticky=E)
- route_old=Entry(group)
- route_old.grid(row=0,column=1,padx=5,pady=5)
-
- def getroute_old():
- route_old.insert(0,tf.askopenfilename())
-
- Button(group,text='选择文件',command=getroute_old)\
- .grid(row=0,column=2,padx=5,pady=5)
- #选择目标保存的文件夹
- Label(group,text='目标文件夹:').grid(row=1,padx=5,pady=5,sticky=E)
- route_new=Entry(group)
- route_new.grid(row=1,column=1,padx=5,pady=5)
- def getroute_new():
- route_new.insert(0,tf.askdirectory())
- Button(group,text='选择文件夹',command=getroute_new)\
- .grid(row=1,column=2,padx=5,pady=5)
- #目标格式,设置下拉列表选择
- Label(group,text='目标格式:').grid(row=2,padx=5,pady=5,sticky='e')
- value=StringVar()
- value.set('ogg')
- values=['mp3','ogg','wav','aiff']
- geshi=ttk.Combobox(group,height=14,width=15,state='readonly'\
- ,cursor='arrow',textvariable=value,values=values)
- geshi.grid(row=2,column=1,padx=5,pady=5,sticky='w')
- #定义选择列表事件,列表值设置为当前选中值
- def choose(event):
- value.set(value.get())
- #列表绑定选中事件
- geshi.bind('<<ComboboxSelected>>',choose)
- #转换文件
- def transfile():
- geshi_o=route_old.get().split('.')[-1]
- filename_o=(route_old.get().split('/')[-1]).split('.')[0]
- trans_mp3_to_every(route_old.get(),route_new.get()+'/'+filename_o,\
- geshi_o,geshi.get())
-
- Button(group,text='开始转换',command=transfile).\
- grid(row=3,columnspan=3,pady=20)
- mainloop()
- if __name__=='__main__':
- main()
复制代码 |
|