2013-09-29 68 views
1

我發現題爲「在curses中打印到標準控制檯」的問題。這裏描述了一個解決方案,它包含一個替代sys.stdout的對象,在關閉屏幕後打印到標準控制檯。我測試了這個解決方案並正常工作,但我想知道如何打印某些東西到python shell ?. 編程代碼如下打印到shell curses中的Python

class stdoutwrapper: 
    text="" 
    def write(self,txt): 
    self.text +=txt 
    self.text='\n'.join(self.text.split('\n')[-30:]) 
    def get_text(self,beg,end): 
    return '\n'.join(self.text.split('\n')[beg:end]) 
if __name__=="__main__": 
    mystdout=stdoutwrapper() 
    sys.stdout=mystdout 
    sys.stderr=mystdout 
    print "bienvenido" 
........... 
.......... 
.......... 
........... 
# Main program 
    processmenu(menu_data) 
    curses.endwin() #VITAL! This closes out the menu system and returns you to the bash prompt. 
    os.system('clear') 
    sys.stdout=sys.__stdout__ 
    sys.stderr=sys.__stderr__ 
    sys.stdout.write(mystdout.get_text(0,30)) 

從詛咒屏幕退出後,出標準控制檯:

BIENVENIDO

C:\用戶\卡薩利諾>

回答

2

不知道我完全理解你的問題。 如果你想在詛咒程序打印文本 - 你應該使用類似的東西:

screen = curses.initscr() 
screen.noecho() 

screen.addstr(y=5, x=5, "My_string") 
self.screen.refresh() 

例如here是我的詛咒假的「屏幕保護程序」。

Python curses tutorial

如果要打印一些調試值,最好使用記錄器模塊並記錄到文件。

祝你好運!

+0

哦,這麼古老的問題!我沒有看過帖子日期:) – MoSt