2013-12-24 44 views
3

为什么不能正常工作? - 在这里完整的代码...... http://pastebin.com/f940nPPg使用python将日志文件的内容打印到curses屏幕

....snip 
f = open(log, 'r') 
y = 3; 
x = 3; 

while True: 
    c = quote_window.getch() 
    if c == ord('r') or c == ord('R'): 
     quote_text_window.clear() 
     quote_text_window.refresh() 
     for line in f: 
      quote_text_window.addstr(line) 
      y = y + 1 
      quote_text_window.move(y, x) 

    elif c == ord('q') or c == ('Q'): 
     break 

    stdscr.noutrefresh() 
    quote_window.noutrefresh() 
    quote_text_window.noutrefresh() 
    curses.doupdate() 
f.close() 
....snip 

我得到错误

quote_text_window.addstr(line) 
    _curses.error: addwstr() returned ERR 

如果我通过addstr()一个字符串,我得到

quote_text_window.move(y, x) 
    _curses.error: wmove() returned ERR 

我试图开发一个用于阅读日志文件的curses界面。我希望它利用SSH或东西,所以我可以从一个接口从各种计算机读取各种日志文件。我确定有很多伟大的课程可以做这种事情,但我认为这将是一个很好的学习方式。 我是新来的编程,蟒蛇和诅咒(你可能会告诉)

回答

1

你可以提供整个代码的评论,包括解释你认为可能导致问题的某些部分?总之,你的日志文件有多少行?因为如果线路太多,它就不会运行,就像我的终端是80 col和24 line,所以如果我有一个21行的日志文件,那么程序不起作用。

+0

我添加了一个链接到patesbin。我使用的日志文件是kern.log的一部分,只有59行。有没有更好的方法来处理输出大量的文字? thx回应! – user1855481

+0

你是对的。打印出一个较小的文件。我应该为大文件做些什么?可能会添加一个键事件来一次只显示一个屏幕。 – user1855481

+0

感谢您的帮助冷! – user1855481