使用python将日志文件的内容打印到curses屏幕

时间:2013-12-24 05:02:15

标签: python curses

为什么这不起作用? - 这里的完整代码...... http://pastebin.com/f940nPPg

....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或其他东西,所以我可以在一个界面中从各种计算机读取各种日志文件。我确定有很多伟大的程序可以做这种事情,但我认为这将是一个很好的学习方式。 我是编程,python和curses的新手(正如你可能会说的那样)

2 个答案:

答案 0 :(得分:1)

您是否可以提供包含注释的整个代码来解释您认为可能导致问题的某些部分?无论如何,你的日志文件有多少行?因为,如果有太多行,它就不会运行,就像我的终端是80行和24行一样,所以如果我有一个21行的日志文件,程序就无法运行。

答案 1 :(得分:0)

像Cold Diamondz说的那样,文本文件不能大于窗口,但如果你使用一个打击垫,你可以调用一个大文件并告诉打击垫刷新哪些尺寸。 检查垫     http://docs.python.org/3.3/howto/curses.html