杀死python诅咒程序后终端显示中断

杀死python诅咒程序后终端显示中断,python,curses,Python,Curses,我用python编写了一个小程序,并使用curses库输出了一些屏幕显示。对于我的简单输出,这似乎有效。我从命令行运行python程序 我的问题是,如果我杀死python程序,终端将无法正确显示。例如: “ls-al”在我运行python诅咒程序之前正确显示 在我杀死python诅咒程序后,“ls-al”不能正确显示 在我杀死python curses程序后,如何使终端正确显示输出?通常,reset命令会将终端设置重置为默认值 注册一个将取消初始化curses的程序。如果使用curses.wra

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

我的问题是,如果我杀死python程序,终端将无法正确显示。例如: “ls-al”在我运行python诅咒程序之前正确显示 在我杀死python诅咒程序后,“ls-al”不能正确显示


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

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

注册一个将取消初始化curses的程序。

如果使用curses.wrapper,它将为您处理所有清理(和设置)

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

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()
。它将恢复终端窗口…
事实上,如果你在程序关闭后不调用它,终端将显示一切,就像在诅咒窗口中一样