擅长:python、mysql、java
<p>我不认为您可以在一个<code>os.system()</code>调用中调用<code>pushd</code></p>
<pre><code>>>> import os
>>> ret = os.system("pushd /tmp")
sh: pushd: not found
</code></pre>
<p>也许你的系统实际上提供了一个触发shell内部函数的<code>pushd</code>二进制文件(<strike>我想我以前在FreeBSD上见过),但是进程的当前工作目录不受其他进程的影响,所以你的第一个<code>system()</code>启动了一个shell,运行了一个假设的<code>pushd</code>,启动一个shell,运行<code>ls</code>,启动一个shell,运行一个假设的<code>popd</code>。。。这些都不会互相影响。</p>
<p>您可以使用<code>os.chdir("/home/path/")</code>更改路径:<a href="http://docs.python.org/library/os.html#os-file-dir" rel="nofollow">http://docs.python.org/library/os.html#os-file-dir</a></p>