杀死Python curses程序后终端显示异常
我写了一个小程序,用Python语言,并使用了curses库来输出一些屏幕显示。对于我简单的输出来说,这个方法似乎是有效的。我是通过命令行来运行我的Python程序的。
我遇到的问题是,如果我强行结束这个Python程序,终端的显示就会出现问题。比如说: 在我运行Python curses程序之前,输入'ls -al'可以正常显示。 但是在我结束Python curses程序之后,输入'ls -al'就不能正常显示了。
我该怎么做才能在结束Python curses程序后,让我的终端正常显示输出呢?
5 个回答
4
这样初始化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
"""
5
如果你使用curses.wrapper,它会为你处理所有的清理工作(和设置)。
8
通常,reset
命令会把你的终端设置恢复到默认值。