擅长:python、mysql、java
<p><a href="http://docs.python.org/3/library/subprocess.html" rel="nofollow">^{<cd1>}</a>模块提供了运行任何程序的方法。在</p>
<p>你的脚本不是一个程序,而是一个脚本,需要由一个解释器程序执行。在本例中,您可能希望它由当前运行的同一个解释器程序执行,该解释器程序可用作<a href="http://docs.python.org/3/library/sys.html#sys.executable" rel="nofollow">^{<cd2>}</a>。在</p>
<p>当您运行<code>python</code>时,它将它的第一个参数视为要运行的脚本(在该脚本中它将变成<a href="http://docs.python.org/3/library/sys.html#sys.argv" rel="nofollow">^{<cd4>}</a>),并将任何其他参数作为该脚本的参数(成为<code>sys.argv[1:]</code>)。在</p>
<p>命令行参数必须是字符串,因此必须序列化要传递给字符串的任何参数,然后在另一端反序列化它们。对于整数,这是微不足道的,但对于更复杂的类型则可能不是。在</p>
<p>会是这样的:</p>
<pre><code>output = subprocess.check_output([sys.executable, pyName, str(num)])
</code></pre>
<p>显然,如果您不想捕获它的stdout,也不想捕获它的stderr,或者不想将非零retcode作为异常处理,或者希望在后台运行它而不是等待它,等等,那么<code>subprocess</code>函数调用将有所不同。但是如果你读了这些文档,你可能想做的任何事情都有很好的例子。在</p>
<p>然后,生成的脚本将执行以下操作:</p>
^{pr2}$