python - 现有代码的简单 tkinter gui
问题描述
我已经编写了一些代码(顺便说一句,我仍然是 python 和一般编程的菜鸟),我想制作一个 tkinter 窗口,它有一个文本框,将显示控制台中打印的所有内容和一个将要运行的按钮main() 函数。
我现有的代码:
import pafy
import os
from pydub import AudioSegment
def downloadSound(videourl):
url = str(videourl)
video = pafy.new(url)
bestaudio = video.getbestaudio()
print(video.title, video.author, video.length)
bestaudio.download()
def linklister(linklist):
f = open('links.txt','r')
for line in f:
linklist.append(line.strip())
f.close()
def converter():
dirlist = os.listdir()
songlist = []
for i in dirlist:
if ".webm" in i:
songlist.append(i)
for i in songlist:
sound = AudioSegment.from_file(i)
imp3 = i.replace(".webm", ".mp3")
sound.export(imp3, format="mp3", bitrate="192k")
print (i, "DONE")
def main():
ytlinks = []
linklister(ytlinks)
for i in ytlinks:
downloadSound(i)
print ("downlad complete, proceeding to conversion")
converter()
try:
main()
except Exception as e:
print (e)
print ("OPPS")
else:
pass
解决方案
我尚未对此进行测试,但根据个人经验,此 tkinter 代码有效,我无法检查它是否适用于您的代码。如果此代码不起作用,请通过在我放置注释的位置添加打印来测试它。
import sys
import tkinter as tk
import pafy
import os
from pydub import AudioSegment
def downloadSound(videourl):
url = str(videourl)
video = pafy.new(url)
bestaudio = video.getbestaudio()
print(video.title, video.author, video.length)
bestaudio.download()
def linklister(linklist):
f = open('links.txt','r')
for line in f:
linklist.append(line.strip())
f.close()
def converter():
dirlist = os.listdir()
songlist = []
for i in dirlist:
if ".webm" in i:
songlist.append(i)
for i in songlist:
sound = AudioSegment.from_file(i)
imp3 = i.replace(".webm", ".mp3")
sound.export(imp3, format="mp3", bitrate="192k")
print (i, "DONE")
def main():
ytlinks = []
linklister(ytlinks)
for i in ytlinks:
downloadSound(i)
print ("downlad complete, proceeding to conversion")
class TextOut(tk.Text):
def write(self, s):
self.insert(tk.CURRENT, s)
def flush(self):
pass
if __name__ == '__main__':
root = tk.Tk()
text = TextOut(root)
sys.stdout = text
text.pack(expand=True, fill=tk.BOTH)
main()#here
root.mainloop()
推荐阅读
- java - 从@Provides 优化我的代码以绑定到我的guice 包中
- haskell - 是否可以使用当前返回类型退出 Haskell 中的函数?
- reactjs - 让 D3.js 和 React 一起工作:如何让 D3 画笔在页面重新渲染时保持不变?
- xml - 不满足特定条件时如何删除标题并不产生输出
- javascript - ivec2 未在带有 gl 过渡的 webgl 滑块上定义
- javascript - 切换侧面板时调整列大小
- spring - nginx代理后面的spring boot swagger2 - 找不到swagger-resources
- apache-nifi - 请求的资源 ListenHTTP 处理器上不存在“Access-Control-Allow-Origin”标头
- c++ - 获取向量元素时出错
- python - 没有重复的 Pandas merge_asof