擅长:python、mysql、java
<p><code>os.system</code>和{<cd2>}都在子进程中执行程序,就像从命令行执行一样。如果我理解正确,您需要执行以下命令:</p>
<pre><code>python respotify.py john doe
</code></pre>
<p>并向它提供输入,就像给它的<code>stdin</code>,它将包含以下行:</p>
^{pr2}$
<p>这可以通过以下代码完成:</p>
^{3}$
<p>或者,如果要提供的输入依赖于子进程提供的输出,则可以打印到<code>p.stdin</code>并从{<cd5>}读取。在</p>
<pre><code>from subprocess import Popen, PIPE
p = Popen(["python", "respotify.py", "john", "doe"], stdin=PIPE, stdout=PIPE)
print >> p.stdin, "search Wrecking Ball"
output = p.stdout.readline()
print >> p.stdin, "play 1"
print >> p.stdin, "quit"
p.wait()
</code></pre>
<p>请检查<code>subprocess</code>模块的<a href="http://docs.python.org/2/library/subprocess.html" rel="nofollow">documentation</a>,以获取更多详细信息。在</p>
<p>如果子进程的通信协议很复杂,那么绝对应该使用比这更好的东西,比如@aberner建议的<a href="http://www.noah.org/wiki/Pexpect" rel="nofollow">^{<cd7>}</a>库。在</p>