我使用 curses 库编写了一个小型的 Python 程序,并输出了一些屏幕显示。对于我的简单输出,这似乎是行得通的。我从命令行运行我的 Python 程序。
我的问题是,如果我终止 Python 程序,则终端不会正确显示。例如: 'ls -al' 在运行我的 Python curses 程序之前可以正确显示 在我终止 Python curses 程序后,'ls -al' 就无法正确显示。
我该怎么做,才能使终端在我终止 Python curses 程序后正确显示输出?
reset
命令会将终端设置重置为默认值。可以通过以下方式初始化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()
。它可以恢复终端窗口...
事实上,如果在程序关闭后不调用它,终端将显示所有与curses窗口中相同的内容...