【问题标题】:Python Youtube-dl - keep terminal / tkinter window open after executingPython Youtube-dl - 执行后保持终端/ tkinter窗口打开
【发布时间】:2014-12-22 23:58:21
【问题描述】:

我在python下使用tkinter和youtube-dl

def dl(lk,fl): # link / file location
    opts=['-o', fl+'/%(title)s-%(id)s.%(ext)s', '--playlist-end', '20', '--extract-audio', '--audio-   format', 'mp3', '--audio-quality', '9', '--write-thumbnail', lk]
    youtube_dl.main(opts)
    return "Successful download"

这是使用库的基本功能,没什么特别的。

我从 tkinter 调用它,所以当我运行它时,下载开始和结束。之后,它会关闭我的 tkinter 窗口。

这里是调用 tkinter 类中第一个函数的函数。

def dlv(self):
    self.url = self.iurl.get()
    if not self.url:
        self.msg = "Error : no url"
    elif not urlregex.match(self.url):
        self.msg = "Error : invalid url"
    else:
        self.msg = dl(self.url,filel)
    self.Com()

我尝试通过调用一些函数作为输入或原始输入来停止。 我还从 youtube dl 图书馆寻找选项。

没有什么工作做得很好。

谢谢

【问题讨论】:

  • 我对@9​​87654324@ 一无所知,但如果不查看您的更多来源就很难判断。你在运行 mainloop 函数吗?如果不是这就是它关闭的原因......

标签: python tkinter youtube-dl auto-close


【解决方案1】:

我不熟悉youtube_dl。但是,我认为它最后会调用sys.exit。请尝试使用subprocess.Popen

类似的,

import subprocess

def dl(lk, fl):
    opts = ['-o', fl + '/%(title)s-%(id)s.%(ext)s', '--playlist-end', '20',
            '--extract-audio', '--audio-   format', 'mp3', '--audio-quality',
            '9', '--write-thumbnail', lk]

    args = ['python', '-m', 'youtube_dl']
    args.extend(opts)

    p = subprocess.Popen(args) # You can use subprocess.PIPE to redirect stdout & stderr. Read the doc for more info.
    p.communicate() # Wait for process to terminate.

    if p.returncode == 0: # You might wanna check for correct successful return code.
        return 'Successful download'
    else:
        return 'Download Failed'

请注意,我没有测试此代码。这也会挂起主 tkinter 窗口。您可能想在单独的线程/进程中调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2020-08-15
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 2014-05-27
    • 1970-01-01
    相关资源
    最近更新 更多