擅长:python、mysql、java
<p>虽然这是一个老问题,但当我面对一个类似的问题时,我找到了这个问题和答案。</p>
<p>我在筛选<a href="https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-sc" rel="nofollow noreferrer">IPython Cell magics documentation</a>之后找到的解决方案实际上相当简单。最基本的解决方案是将命令的输出分配给变量。</p>
<p>这个简单的双单元示例演示了如何做到这一点。在第一个笔记本单元中,我们使用<code>%%writefile</code>单元魔术定义了Python脚本,并将其输出到<code>stdout</code>。</p>
<pre class="lang-py prettyprint-override"><code>%%writefile output.py
print("This is the output that is supposed to go to a file")
</code></pre>
<p>然后,我们运行该脚本,就像它是使用<code>!</code>运算符从shell运行一样。</p>
<pre class="lang-py prettyprint-override"><code>output = !python output.py
print(output)
>>> ['This is the output that is supposed to go to a file']
</code></pre>
<p>然后您可以很容易地使用<code>%store</code>魔术来持久化输出。</p>
<pre class="lang-py prettyprint-override"><code>%store output > output.log
</code></pre>
<p>但是请注意,命令的输出将作为行列表持久化。在存储输出之前,您可能需要调用<code>"\n".join(output)</code>。</p>