Python打印在调用curses包装器后搞砸了

时间:2017-03-02 19:20:38

标签: python printing curses

我在Python中使用curses库时出现问题。请考虑以下代码:

def main(stdscr):

    print('Hello World!!')
    create_screen()
    curses.endwin()

if __name__ == "__main__":
    curses.wrapper(main)

问题是" print"甚至在调用" create_screen()"之前,函数就搞乱了。通过" curses.initscr()"启动屏幕的功能;

1 个答案:

答案 0 :(得分:1)

您可以在程序使用print之前和之后正常使用inputcurses。此外,您不必将所有代码都放入main,也不必将main函数传递给cursesmain只是一个与其他功能一样的功能。看看这个简单的例子:

import curses, time

def incurses(stdscr):
    stdscr.addstr(0, 0, "Exiting in ")
    stdscr.addstr(2, 0, "Hello World from Curses!")
    for i in range(5, -1, -1):
        stdscr.addstr(0, 11, str(i))
        stdscr.refresh()
        time.sleep(1)
    curses.endwin()

def main():
    print('Hello World!!')
    choice = input("Start Curses Program? ")
    if choice == "yes":
        curses.wrapper(incurses)
    print("After curses")

if __name__ == "__main__":
    main()

打印并询问用户输入,然后显示curses屏幕,然后返回“正常”打印模式。