使用python下载youtube视频';s子流程

使用python下载youtube视频';s子流程,python,subprocess,youtube-dl,Python,Subprocess,Youtube Dl,如果我这样做: youtube dl-i-w“ytsearch:有趣的动物” 然后,它将成功下载第一个视频文件,该文件的查询名为滑稽动物,但当我使用python代码编写相同的东西时 from subprocess import call command = 'youtube-dl -i -w ytsearch:funny animals' call(command.split(), shell=False) 它下载有趣的而不是有趣的动物。请帮忙 您的视频名称中有一个空格。。。您可以尝试使用不

如果我这样做:

youtube dl-i-w“ytsearch:有趣的动物”

然后,它将成功下载第一个视频文件,该文件的查询名为滑稽动物,但当我使用python代码编写相同的东西时

from subprocess import call

command = 'youtube-dl -i -w ytsearch:funny animals'
call(command.split(), shell=False)

它下载有趣的而不是有趣的动物。请帮忙

您的视频名称中有一个空格。。。您可以尝试使用不同的分隔符进行拆分

command = 'youtube-dl|-i|-w|ytsearch:funny animals'
call(command.split('|'), shell=False)

如果视频名称包含相同的分隔符,则会出现更多问题。更好的解决方案是直接传递列表:

call(['youtube-dl', '-i', '-w', 'ytsearch:funny animals'], shell=False)

非常感谢你!我需要等待7分钟才能接受您的正确答案。@blacklight当您执行
command.split()
时,它将变成
['youtube-dl'、'-I'、'-w'、'ytsearch:fully'、'animals']
。这里的
animals
作为
子流程调用()的另一个选项,而不是
ytsearch:
的一部分。