<p>=>;正如Martijn Pieters所说,无法检索操作系统()调用(因为它产生了一个subshell=一个黑盒子,我们只知道它的返回码)。解决方案是让Python充当最终用户和CAST3M之间的代理(传递配置:Python是“中间人”,监听用户请求并“原样”地发送给CAST3M,然后捕获CAST3M答案并将其打印回用户)。为此,您必须使用子进程、线程和队列模块。如果您不介意它带来的复杂性(以及原始HCI体验的改变),以下是一些链接的快速摘要,这些链接可能会显示出有用的信息:</p>
<ol>
<li><a href="https://stackoverflow.com/questions/4335587/wrap-subprocess-stdout-stderr">Wrap subprocess' stdout/stderr</a></li>
<li><a href="https://stackoverflow.com/questions/12270645/can-you-make-a-python-subprocess-output-stdout-and-stderr-as-usual-but-also-cap">Can you make a python subprocess output stdout and stderr as usual, but also capture the output as a string?</a></li>
<li><a href="https://stackoverflow.com/questions/11457931/running-an-interactive-command-from-within-python">Running an interactive command from within python</a></li>
<li><a href="https://stackoverflow.com/questions/375427/non-blocking-read-on-a-subprocess-pipe-in-python">Non-blocking read on a subprocess.PIPE in python</a></li>
<li><a href="http://log.ooz.ie/2013/02/interactive-subprocess-communication-in.html" rel="nofollow noreferrer">http://log.ooz.ie/2013/02/interactive-subprocess-communication-in.html</a></li>
</ol>
<p>=>;Robᵩ通过将日志记录任务指定给“脚本”Linux工具,仅为Linux提供了一个解决方案。这使得“user<;>CAST3M”交互功能保持不变(这里没有代理)。在</p>