如何在Python中通过管道传递Python进程的输出?

激励G

我正在编写一个程序,使用可以从YouTube下载视频youtube-dl

我曾经用来呼叫youtube-dl subprocess

import subprocess

p = subprocess.Popen([command], \
    stdout=subprocess.PIPE, \
    stderr=subprocess.STDOUT, \
    universal_newlines = True)

然后,我将通过调用以下内容来读取进程的输出:

for line in iter(p.stdout.readline, ""):
    hide_some_stuff_using_regex()
    show_some_stuff_using_regex()

但是,我更喜欢将其youtube-dl用作Python类。所以我现在正在这样做:

from youtube_dl import YoutubeDL as youtube_dl

options = {"restrictfilenames": True, \
           "progress_with_newline": True}

ydl = youtube_dl(options)
ydl.download([url])

该代码有效,但是我很难找出如何管道youtube-dl输出。请注意,我想使用youtube-dl输出的一部分进行实时打印,因此重定向sys.stdout到自定义输出流将不起作用,因为我仍然需要sys.stdout进行打印。

你能帮助我吗?

匿名

专门针对youtube-dl,您可以设置logger对象,如文档中的高级示例所示

from youtube_dl import YoutubeDL


class MyLogger(object):
    def debug(self, msg):
        print('debug information: %r' % msg)

    def warning(self, msg):
        print('warning: %r' % msg)

    def error(self, msg):
        print('error: %r' % msg)


options = {
    "restrictfilenames": True,
    "progress_with_newline": True,
    "logger": MyLogger(),
}

url = 'http://www.youtube.com/watch?v=BaW_jenozKc'
with YoutubeDL(options) as ydl:
    ydl.download([url])

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Python中通过管道传递到os.execv进程的stdin

来自分类Dev

如何在Python中通过管道传递到os.execv'd进程的stdin

来自分类Dev

如何在Powershell中通过管道传递来自foreach的输出

来自分类Dev

如何在Powershell中通过管道传递旧命令的输出?

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

如何通过管道grep输出从python中的STDIN中读取

来自分类Dev

您如何在Python中处理管道和输出?

来自分类Dev

如何将python脚本的输出通过管道传递到Rscript?

来自分类Dev

如何将python脚本的输出通过管道传递到Rscript?

来自分类Dev

如何通过管道传递 curl 的 JSON 输出以使用 python 查询 JSON 值

来自分类Dev

在bash函数内部,如何在定义时不调用python程序的情况下将输出通过管道传递到python程序?

来自分类Dev

如何获取包含管道的Python子进程命令的输出?

来自分类Dev

进程如何在其输出通过管道传输时消除转义码?

来自分类Dev

如何在R中通过管道传递到if语句

来自分类Dev

如何在Django Python中通过URL传递objectId

来自分类Dev

通过子进程中的python脚本传递UTF-8

来自分类Dev

如何在Python中实现守护进程?

来自分类Dev

如何在python中“采用”子进程

来自分类Dev

如何在Python中获取进程的pid

来自分类Dev

如何使用通过批处理管道传递的两个命令中的相同输出文件

来自分类Dev

如何通过R中的管道传递参数?

来自分类Dev

如何通过管道传递“经过的时间”(或其他输出)

来自分类Dev

无法通过管道将python输出输出到程序

来自分类Dev

通过python3子进程发送管道命令

来自分类Dev

如何在外壳中通过管道传递md5哈希结果

来自分类Dev

如何在 bash 中通过管道传递两个变量?

来自分类Dev

如何在python中抑制函数输出

来自分类Dev

如何在python输出中摆脱\ n

来自分类Dev

如何在 Python 中对输出求和

Related 相关文章

  1. 1

    如何在Python中通过管道传递到os.execv进程的stdin

  2. 2

    如何在Python中通过管道传递到os.execv'd进程的stdin

  3. 3

    如何在Powershell中通过管道传递来自foreach的输出

  4. 4

    如何在Powershell中通过管道传递旧命令的输出?

  5. 5

    如何通过管道grep输出从python中的STDIN中读取

  6. 6

    如何通过管道grep输出从python中的STDIN中读取

  7. 7

    您如何在Python中处理管道和输出?

  8. 8

    如何将python脚本的输出通过管道传递到Rscript?

  9. 9

    如何将python脚本的输出通过管道传递到Rscript?

  10. 10

    如何通过管道传递 curl 的 JSON 输出以使用 python 查询 JSON 值

  11. 11

    在bash函数内部,如何在定义时不调用python程序的情况下将输出通过管道传递到python程序?

  12. 12

    如何获取包含管道的Python子进程命令的输出?

  13. 13

    进程如何在其输出通过管道传输时消除转义码?

  14. 14

    如何在R中通过管道传递到if语句

  15. 15

    如何在Django Python中通过URL传递objectId

  16. 16

    通过子进程中的python脚本传递UTF-8

  17. 17

    如何在Python中实现守护进程?

  18. 18

    如何在python中“采用”子进程

  19. 19

    如何在Python中获取进程的pid

  20. 20

    如何使用通过批处理管道传递的两个命令中的相同输出文件

  21. 21

    如何通过R中的管道传递参数?

  22. 22

    如何通过管道传递“经过的时间”(或其他输出)

  23. 23

    无法通过管道将python输出输出到程序

  24. 24

    通过python3子进程发送管道命令

  25. 25

    如何在外壳中通过管道传递md5哈希结果

  26. 26

    如何在 bash 中通过管道传递两个变量?

  27. 27

    如何在python中抑制函数输出

  28. 28

    如何在python输出中摆脱\ n

  29. 29

    如何在 Python 中对输出求和

热门标签

归档