Python诅咒问题

时间:2011-04-26 03:45:21

标签: python curses

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

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

杀死我的python curses程序后,如何正确显示终端显示输出?

5 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:6)

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

答案 2 :(得分: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
"""

答案 3 :(得分:1)

注册一个不会初始化诅咒的signal handler

答案 4 :(得分:0)

我认为你应该使用curses.endwin()。它恢复了终端窗口......
事实上,如果你在程序关闭后没有调用它,终端将显示它在curses窗口中的所有内容......