0

我正在尝试将 curses 窗口的输出转储到一个文件中而不在标准输出上显示它。目前我正在使用 addstr() 函数在标准输出上打印,最后我正在调用 instr() 函数将整个屏幕转储到文件中。在某些情况下,ncurses 在 xterm 上无法正常工作,因此我需要将输出重定向到文件而不实际将其打印到标准输出上。我想过使用记录器模块,但我失去了 addstr() 提供的颜色编码。实现这一目标的最佳方法是什么?

例如:

如果我运行以下命令

$ python get_stats.py

它应该显示在标准输出上,当我运行命令时

$ python get_stats.py --dump-to-file

它应该转储到文件而不显示在标准输出上。addstr() 是否需要额外的参数来确定输出应该是文件还是标准输出?

4

1 回答 1

0

不,addstr不带附加参数。默认情况下(使用initscr,即),curses 写入标准输出。你可以简单地做

python get_stats.py >myfile

但是要创建程序选项,您必须告诉 Python(或 curses)写入给定的文件。Python 对 ncurses 的绑定不包括newterm,这是控制输出流的常用方法。但在 Python 中,您可以重定向标准输出,如以下问题中所述:

因为 curses 在本地保存了输出流的副本,所以您必须调用initscr. 另外,请记住,curses 可能使用文件描述符而不是缓冲的输出流。

于 2015-03-08T20:37:50.933 回答