打印到curses中的shell

时间:2013-09-29 05:39:36

标签: python-curses

我找到了一个标题为“在curses中打印到标准控制台”的问题。这里描述了一个解决方案,其中一个对象在关闭诅咒屏幕后替换了sys.stdout以打印到标准控制台。我测试了这个解决方案并正常工作,但我想知道如何将某些东西打印到python shell? 编程代码如下

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:\用户\卡萨利诺>

1 个答案:

答案 0 :(得分:2)

不确定我完全理解你的问题。 如果你想在curses程序中打印文本 - 你应该使用类似的东西:

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

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

例如here是我的诅咒虚拟"屏幕保护程序"。

Python诅咒tutorial

如果您想打印一些调试值,那么最好使用记录器模块并记录到文件。

祝你好运!