如何在Moviepy中使用Tkinter输入?

问题描述

我做了一个终端mp4到mp3转换器。我正在尝试为其创建UI版本,但是它不起作用。我做了一个tkinter输入,所以您将视频的名称放入输入中,它应该将其转换。但是要进行UI输入,我必须使用tkinter,但是如果我尝试将tkinter输入用于moviepy代码中,它将输入作为文件名。该错误称为:import csv lines = list() with open('f_name','r') as readFile: reader = csv.reader(readFile) for row in reader: lines.append(row) #print(row[4:]) if row[2:] == 'None': print(row) with open(f_name,'w') as writeFile: writer = csv.writer(writeFile) writer.writerows(lines) 知道如何解决此问题吗?

OSError: MoviePy error: the file  Could not be found! Please check that you entered the correct path.

解决方法

您必须将逻辑移至函数中

from tkinter import *
from moviepy.editor import *

def myClick():
  myLabel = Label(window,text="Converting the file named : " + e.get())
  myLabel.pack()
  video = e.get()
  mp4_file = video
  mp3_file = "{}.mp3".format(mp4_file)
  videoClip = VideoFileClip(mp4_file)
  audioclip = videoClip.audio
  audioclip.write_audiofile(mp3_file)
  audioclip.close()
  videoClip.close()

window = Tk()

e = Entry(window,width=50)
e.pack()

myButton = Button(window,text="Convert",command=myClick)
myButton.pack()

window.mainloop()

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...