如何将输出打印到控制台而不是 iPython 输出窗格?

7
我希望将输出打印到控制台(显示日志信息的那个或者最好是一个单独的控制台),而不是 iPython 网页笔记本中的输出单元格。

这是因为我经常有非常长的输出需要滚动查看,而 Chrome 会在大量输出时出现卡顿和崩溃,而 iTerm2 不会。


好的。你目前尝试了什么(在代码中)? - Sam Estep
如果您的默认控制台不是iPython sys.__stdout__,更好的做法是使用logging库。 - justengel
2个回答

6

更新自valhallasw的回答:

你应该使用以下代码,否则会出现如下错误:TypeError: a bytes-like object is required, not 'str'

import os
os.write(1, b"text\n")

否则,你也可以像Oliver Evans说的那样做:
import os
os.write(1, "text\n".encode())

3

您可以通过直接写入文件描述符1(而不是映射到iPython笔记本电脑的sys.stdout)来将文本写入控制台:

import os
os.write(1, "text\n")

7
你也可以使用sys.__stdout__.write("foo\n")来输出内容(sys.stdout映射到了notebook,而sys.__stdout__是真正的标准输出文件句柄)。 - Thomas K
3
我使用的是Python 3.6.5版本;os.write需要一个类似于bytes的对象。 os.write(1, "text\n".encode())已足够。 - Oliver Evans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接