2011-04-26 93 views
3

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

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

我杀了我的python curses程序后,怎样才能让我的终端显示输出正确?

回答

5

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

3

以下面的方式初始化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 
""" 
0

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