我通常通过以下方式处理此类问题logging
标准库中的模块,这非常好,但我假设您有充分的理由想要这个。
如果 PyDev 控制台支持完整的终端仿真,我会感到惊讶。至少在 Windows 上的 Helios 下,我对 Unicode 显示没有任何问题,但终端转义是另一回事。
如果您具体知道要使用哪个终端,则可以运行sleep 3600
然后在您的测试驱动程序中执行此操作:
import sys
def redirect_terminal(ttypath):
term = open(ttypath, 'w+')
sys.stdout = term
sys.stderr = term
在交互式解释器中尝试这个,这可能与在 PyDev 中运行它有点不同,我在初始终端中得到这个(注意本地回显和提示符仍然返回这里):
>>> redirect_terminal('/dev/pts/0')
>>> dir()
>>> raise TypeError
>>>
这在/dev/pts/0
终端:
['__builtins__', '__doc__', '__name__', '__package__', 'redirect_terminal', 'sys']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError
虽然我没有在这里尝试任何终端转义,但它们只是像其他任何字节序列一样打印的字节序列,因此它们应该打印在远程终端上。
我无法设法从交互式解释器中的不同终端收集输入。当我尝试时,仍然从初始终端读取输入。