我用python写了一个小程序,并使用curses库输出了一些屏幕显示。对于我的简单输出,这似乎可行。我从命令行运行我的 python 程序。
我的问题是,如果我终止 python 程序,终端将无法正确显示。例如:'ls -al' 在我运行我的 python curses 程序之前正确显示 'ls -al' 在我终止 python curses 程序后没有正确显示。
杀死我的 python curses 程序后,我该怎么做才能使我的终端正确显示输出?
通常该reset
命令会将您的终端设置重置为默认值。
如果您使用 curses.wrapper,它将为您处理所有清理(和设置)。http://docs.python.org/library/curses.html#curses.wrapper
按照以下方式初始化诅咒,它将处理清理。
class curses_screen:
def __enter__(self):
self.stdscr = curses.initscr()
curses.cbreak()
curses.noecho()
self.stdscr.keypad(1)
SCREEN_HEIGHT, SCREEN_WIDTH = self.stdscr.getmaxyx()
return self.stdscr
def __exit__(self,a,b,c):
curses.nocbreak()
self.stdscr.keypad(0)
curses.echo()
curses.endwin()
with curses_screen() as stdscr:
"""
Execution code plush getch code here
"""
注册一个将取消初始化诅咒的信号处理程序。
我认为你应该使用curses.endwin()
. 它恢复终端窗口......
事实上,如果你在程序关闭后不调用它,终端将显示一切就像它在curses窗口中一样......