我已經試圖找出如何格式化POPEN命令遇到類似的問題。現在我幾乎總是用shlex.split()爲我做。從python.org
例子:
>>> import shlex, subprocess
>>> command_line = raw_input()
/bin/vikings -input eggs.txt -output "spam spam.txt" -cmd "echo '$MONEY'"
>>> args = shlex.split(command_line)
>>> print args
['/bin/vikings', '-input', 'eggs.txt', '-output', 'spam spam.txt', '-cmd', "echo '$MONEY'"]
>>> p = subprocess.Popen(args) # Success!
因此,對於這個特殊的例子,你可能有類似
>>> import shlex, subprocess
>>> url = 'http://www.example.com/somepage.html?foo=spam&bar=eggs&baz=ni'
>>> cmd = 'wget --verbose --auth-no-challenge --no-check-certificate -O res ' + url
>>> args = shlex.split(cmd)
>>> p = subprocess.Popen(args)
>>> --2013-12-13 13:36:11-- http://www.example.com/somepage.html?foo=spam&bar=eggs&baz=ni
這工作。謝謝。 – abc
@abc:不要忘記接受一個快速和正確的答案! ;-) –