擅长:python、mysql、java
<p>要将字符串作为<code>sh</code>脚本运行(假设为POSIX):</p>
<pre class="lang-py prettyprint-override"><code>#!/usr/bin/env python
from subprocess import check_call as x
x("""pwd
cd /
pwd""", shell=True)
</code></pre>
<p>可以显式指定命令:</p>
^{pr2}$
<p>注意:它只检查您是否可以<code>cd</code>到一个随机子目录中。更改在bash脚本之外不可见。在</p>
<p>你可以不用痛快地做到:</p>
<pre class="lang-py prettyprint-override"><code>#!/usr/bin/env python
import os
import random
print(os.getcwd())
os.chdir(random.choice([d for d in os.listdir(os.curdir) if os.path.isdir(d)]))
print(os.getcwd())
</code></pre>
<p>您还可以使用<code>glob</code>:</p>
<pre class="lang-py prettyprint-override"><code>from glob import glob
randomdir = random.choice(glob("*/"))
</code></pre>
<p>与<code>os.listdir()</code>相比的区别是<code>glob()</code>过滤以点<code>.</code>开头的目录。您可以手动过滤:</p>
<pre class="lang-py prettyprint-override"><code>randomdir = random.choice([d for d in os.listdir(os.curdir)
if (not d.startswith(".")) and os.path.isdir(d)])
</code></pre>