打印到控制台终端而不是进入IPython Notebook的单元格输出

时间:2015-06-09 10:22:25

标签: python windows ipython ipython-notebook python-3.4

我想打印到运行IPython Notebook的终端窗口而不是单元格输出。当我发出大量print次呼叫时,打印到单元格输出会消耗更多内存并减慢我的系统速度。从本质上讲,我希望设计this行为。

我尝试了以下内容:

  1. 我尝试了sys.stdout.write <!DOCTYPE html> <html> <head> <style> .footer { background-color: #125e9a; bottom: 0; height: 5%; position: absolute; width: 100%; } .footer-links{ display: block; float:left; margin-left: 3%; padding: 0.5%; width: 98px; } .arrow{ background-color: green; height: 14px; margin-top: 2%; width: 10px; } .footer .button-text{ color: #fff; font-size: 14px; font-weight: 600; margin-left: 7%; } .footer-links-wrapper{ width: 215px; } </style> </head> <body> <div id="footer" class="footer"> <div class="footer-links-wrapper"> <span id="help" class="pull-left footer-links"> <span id="left-arrow" class="arrow left-arrow"> << </span> <span id="help-text" class="button-text"> HELP </span> </span> <span id="logout" class="pull-right footer-links"> <span id="logout-text" class="button-text"> LOGOUT </span> <span id="right-arrow" class="arrow right-arrow"> >> </span> </span> </div> </div> </body> </html> 来电
  2. 的不同排列
  3. 我在没有帮助的情况下查看了IPython Notebook文档hereherehere
  4. 我尝试使用this作为解决方法,但它似乎只适用于Python 2.7

3 个答案:

答案 0 :(得分:12)

您必须将输出重定向到系统标准输出设备。这取决于您的操作系统。在Mac上将是:

import sys
sys.stdout = open('/dev/stdout', 'w')

在IPython单元格中键入以上代码并对其进行评估。之后所有输出都将显示在终端中。

答案 1 :(得分:2)

在Windows上,这可以工作:

import sys
sys.stdout = open(1, 'w')

答案 2 :(得分:1)

为了能够轻松地将一种形式转换为另一种形式:

null

类似地,terminal_output = open('/dev/stdout', 'w') print('this will show up in the IPython cell output') print('this will show up in the terminal', file=terminal_output) 可用于发送到终端stderr,而与terminal_error = open('/dev/stderr', 'w')的默认行为(即在IPython单元输出中打印错误消息)的默认行为没有冲突。