我在写一个程序,用^{
我曾经用subprocess
给youtube dl打电话:
import subprocess
p = subprocess.Popen([command], \
stdout=subprocess.PIPE, \
stderr=subprocess.STDOUT, \
universal_newlines = True)
然后,我将通过调用以下命令读取进程的输出:
^{pr2}$但是,我更喜欢使用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
重定向到自定义输出流将不起作用,因为我仍然需要这样做系统标准输出打印。在
你能帮我吗?在
特别是对于youtube dl,可以设置logger对象,如文档中的advanced example:
你可以尝试重定向系统标准输出到您自己的输出流
参见:https://stackoverflow.com/a/1218951/2134702
引用链接的答案:
如果你想输出到stdout 在重定向期间,使用旧的而不是打印_标准输出写入()
相关问题 更多 >
编程相关推荐