Python: проклятия не показывают печатный текст, пока не вызывается getkey()
У меня есть код Python, который выводит на экран текст. Но если я опущу stdsrc.getkey()
Функция ничего не печатает на экран.
import curses
def write(stdscr):
stdscr.clear()
stdscr.refresh()
stdscr.addstr("this is a test string")
stdscr.refresh()
def main():
curses.wrapper(write)
if __name__ == '__main__':
main()
Приведенный выше код не показывает ничего на экране, но если я изменю его, как показано ниже, он напечатает "this is a test string"
до терминала
import curses
def write(stdscr):
stdscr.clear()
stdscr.refresh()
stdscr.addstr("this is a test string")
stdscr.refresh()
stdscr.getkey()
def main():
curses.wrapper(write)
if __name__ == '__main__':
main()
1 ответ
Ты используешьcurses.wrapper
который сбрасывает окно терминала после выхода. Без него существует очень быстро, окно сбрасывается и вы ничего не видите. заставляет ждать ключа и у вас есть время увидеть изменение в окне. Если вы поставитеtime.sleep(5)
вместоgetkey
у вас будет аналогичный эффект. Если вы не используетеwrapper
, но позвониwrite
непосредственно, вы также увидите изменение в окне.