我正在尝试构建一个小脚本来下载视频。我在尝试将整数传递给subprocess.call时遇到问题。提前谢谢
# test url for analysis
URL = 'https://www.youtube.com/watch?v=7WauUpq4N8I'
import subprocess
subprocess.call("youtube-dl -F '%s'" %URL, shell=True)
print
# outlist numerical list of options
#input choice
Q = raw_input('Please select download quality from above ')
print
# pass input Q (integer) to subprocess.call
import subprocess
subprocess.call(["youtube-dl -f "] + Q ,["'%s'" %URL], shell=True)
追踪(最近一次呼叫最后一次):
File "./youtube.py", line 21, in <module>
subprocess.call(["youtube-dl -f "] + Q ,["'%s'" %URL], shell=True)
TypeError: can only concatenate list (not "str") to list
答案 0 :(得分:2)
错误消息告诉您不能将列表(例如:['foo', 'bar']
)连接到字符串(例如:'baz'
)。您可能想要做的是将您的单个参数包装在列表中或者更加简洁,将其作为原始列表的一部分:
(将其包装在列表中)
# SNIP
import subprocess
subprocess.call(["youtube-dl", "-f "] + [Q] + [URL])
(使其成为原始列表的一部分
# SNIP
import subprocess
subprocess.call(['youtube-dl', '-f', Q, URL])