首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python dl-在执行后保持终端/ tkinter窗口打开

Python dl-在执行后保持终端/ tkinter窗口打开
EN

Stack Overflow用户
提问于 2014-12-22 23:58:21
回答 1查看 594关注 0票数 1

我在python下使用tkinter和youtube-dl

代码语言:javascript
复制
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类中的第一个函数的函数。

代码语言:javascript
复制
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图书馆寻找选择。

一切都很顺利。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-23 01:39:40

我对youtube_dl不熟悉。但是,我想它叫sys.exit at end.Try subprocess.Popen

就像,

代码语言:javascript
复制
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'

注意,我没有测试这个code.also --这将挂起主tkinter window.you可能希望在单独的线程/进程中调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27612283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档