擅长:python、mysql、java
<p>子流程模块支持设置子流程fx的当前工作目录:</p>
<pre><code>subprocess.call("./Upgrade", cwd="/home/bin")
</code></pre>
<p>如果不关心子进程的当前工作目录,当然可以提供可执行文件的完全限定名:</p>
<pre><code>subprocess.call("/home/bin/Upgrade")
</code></pre>
<p>您可能还想使用<code>subprocess.check_call</code>函数(如果您想在子进程不返回零返回代码时引发异常)。</p>
<p>解决方案的问题是,启动一个子进程,在该子进程中尝试执行“cd/home/bin”,然后启动另一个子进程,在该子进程中尝试执行“./Upgrade”-后者的当前工作目录不受前者目录更改的影响。</p>
<p>注意,向<code>call</code>方法提供shell有一些缺点(也有一些优点)。缺点(或优点)是您将获得各种shell扩展(通配符等)。一个缺点可能是shell可能会根据您的平台对命令进行不同的解释。</p>