Python 调用 curses wrapper 后打印混乱
Python print messed up after calling curses wrapper
我在 Python 中遇到 curses 库问题。考虑以下代码:
def main(stdscr):
print('Hello World!!')
create_screen()
curses.endwin()
if __name__ == "__main__":
curses.wrapper(main)
问题是 "print" 函数打印的每个文本甚至在调用 "create_screen()" 函数之前就被弄乱了 "curses.initscr()"
你的程序使用curses
前后都可以正常使用print
和input
。此外,您不必将所有代码都放入 main
,也不必将 main
函数传递给 curses
。 main
和其他函数一样只是一个函数。看看这个简单的例子:
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()
这将打印并要求用户输入,然后显示一个诅咒屏幕,然后返回到 "normal" 打印模式。
我在 Python 中遇到 curses 库问题。考虑以下代码:
def main(stdscr):
print('Hello World!!')
create_screen()
curses.endwin()
if __name__ == "__main__":
curses.wrapper(main)
问题是 "print" 函数打印的每个文本甚至在调用 "create_screen()" 函数之前就被弄乱了 "curses.initscr()"
你的程序使用curses
前后都可以正常使用print
和input
。此外,您不必将所有代码都放入 main
,也不必将 main
函数传递给 curses
。 main
和其他函数一样只是一个函数。看看这个简单的例子:
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()
这将打印并要求用户输入,然后显示一个诅咒屏幕,然后返回到 "normal" 打印模式。