我在python中编写了一个小程序,并使用curses库输出了一些屏幕显示。对于我的简单输出这似乎工作。我从命令行运行我的python程序。Python诅咒问题
我的问题是,如果我杀了python程序的终端不能正常显示。例如: 'ls -al'在我运行我的python curses程序之前正常显示 'ls -al'在我终止python curses程序后无法正常显示。
我杀了我的python curses程序后,怎样才能让我的终端显示输出正确?
我在python中编写了一个小程序,并使用curses库输出了一些屏幕显示。对于我的简单输出这似乎工作。我从命令行运行我的python程序。Python诅咒问题
我的问题是,如果我杀了python程序的终端不能正常显示。例如: 'ls -al'在我运行我的python curses程序之前正常显示 'ls -al'在我终止python curses程序后无法正常显示。
我杀了我的python curses程序后,怎样才能让我的终端显示输出正确?
通常,reset
命令会将您的终端设置重置为默认值。
注册将会初始化诅咒的signal handler。
如果你使用curses.wrapper,它会为你处理所有的清理(并设置)。 http://docs.python.org/library/curses.html#curses.wrapper
以下面的方式初始化curses,它会处理清理。
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()
。它恢复终端窗口...
事实上,如果你不关闭程序后调用它,终端将显示一切,就像它在诅咒窗口中一样...