杀死Python curses程序后,终端显示不正常

3

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

我的问题是,如果我终止 Python 程序,则终端不会正确显示。例如: 'ls -al' 在运行我的 Python curses 程序之前可以正确显示 在我终止 Python curses 程序后,'ls -al' 就无法正确显示。

我该怎么做,才能使终端在我终止 Python curses 程序后正确显示输出?

5个回答

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

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
"""

1

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接