我在python中編寫了一個小程序,並使用curses庫輸出了一些屏幕顯示。對於我的簡單輸出這似乎工作。我從命令行運行我的python程序。Python詛咒問題
我的問題是,如果我殺了python程序的終端不能正常顯示。例如: 'ls -al'在我運行我的python curses程序之前正常顯示 'ls -al'在我終止python curses程序後無法正常顯示。
我殺了我的python curses程序後,怎樣才能讓我的終端顯示輸出正確?
我在python中編寫了一個小程序,並使用curses庫輸出了一些屏幕顯示。對於我的簡單輸出這似乎工作。我從命令行運行我的python程序。Python詛咒問題
我的問題是,如果我殺了python程序的終端不能正常顯示。例如: 'ls -al'在我運行我的python curses程序之前正常顯示 'ls -al'在我終止python curses程序後無法正常顯示。
我殺了我的python curses程序後,怎樣才能讓我的終端顯示輸出正確?
通常,reset
命令會將您的終端設置重置爲默認值。
註冊將會初始化詛咒的signal handler。
如果你使用curses.wrapper,它會爲你處理所有的清理(並設置)。 http://docs.python.org/library/curses.html#curses.wrapper
以下面的方式初始化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
"""
我認爲你應該使用curses.endwin()
。它恢復終端窗口...
事實上,如果你不關閉程序後調用它,終端將顯示一切,就像它在詛咒窗口中一樣...