3

我用python写了一个小程序,并使用curses库输出了一些屏幕显示。对于我的简单输出,这似乎可行。我从命令行运行我的 python 程序。

我的问题是,如果我终止 python 程序,终端将无法正确显示。例如:'ls -al' 在我运行我的 python curses 程序之前正确显示 'ls -al' 在我终止 python curses 程序后没有正确显示。

杀死我的 python curses 程序后,我该怎么做才能使我的终端正确显示输出?

4

5 回答 5

7

通常该reset命令会将您的终端设置重置为默认值。

于 2011-04-26T03:47:07.133 回答
6

如果您使用 curses.wrapper,它将为您处理所有清理(和设置)。http://docs.python.org/library/curses.html#curses.wrapper

于 2011-09-27T19:32:18.703 回答
4

按照以下方式初始化诅咒,它将处理清理。

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
"""
于 2012-06-14T01:58:22.523 回答
1

注册一个将取消初始化诅咒的信号处理程序。

于 2011-04-26T03:48:21.703 回答
1

我认为你应该使用curses.endwin(). 它恢复终端窗口......
事实上,如果你在程序关闭后不调用它,终端将显示一切就像它在curses窗口中一样......

于 2015-06-14T12:34:08.740 回答