通过网站运行以下python脚本可以正常工作(如预期的那样)停止MPD的播放:
#!/usr/bin/env python
import subprocess
subprocess.call(["mpc", "stop"])
print ("Content-type: text/plain;charset=utf-8\n\n")
print("Hello")
然而,此脚本会导致错误(播放按预期开始):
#!/usr/bin/env python
print("Content-type: text/plain;charset=utf-8\n\n")
print ("Hello")
import subprocess
subprocess.call(["mpc", "play"])
错误是:
malformed header from script. Bad header=Scorpions - Eye of the tiger -: play.py, referer: http://...
显然,播放命令返回的内容都被视为标题。在终端中运行时,输出看起来很好。为什么会这样?
答案 0 :(得分:2)
mpc play
正在写信给stdout。你需要保持沉默:
import os
with open(os.devnull, 'w') as dev_null:
subprocess.call(["mpc", "stop"], stdout=dev_null)
\r\n
分开,而不是\n\n
。答案 1 :(得分:0)
您需要使用\r\n
行结尾。