Нажмите любую клавишу, чтобы продолжить (Python, кроссплатформенное решение)

Я пытаюсь создать одно поведение скрипта на машинах Linux/Mac/Windows с Python 2.7.x.

С небольшой помощью из этой темы:

Я могу добиться желаемых результатов: по нажатию любой клавиши скрипт завершает работу.

Но, может быть, есть лучший способ сделать это? Кто-нибудь может мне помочь?

Спасибо!

#!/usr/bin/env python2.7

import os
import sys

def wait_for_press():
    if sys.platform == 'win32':
        os.system("pause")
    elif sys.platform in ('linux2', 'darwin'):
        import termios
        import tty

        print "Press any key to continue..."

        stdin_file_desc = sys.stdin.fileno()
        old_stdin_tty_attr = termios.tcgetattr(stdin_file_desc)
        try:
            tty.setraw(stdin_file_desc)
            sys.stdin.read(1)
        finally:
            termios.tcsetattr(stdin_file_desc, termios.TCSADRAIN, old_stdin_tty_attr)

if __name__ == "__main__":
    wait_for_press()

person silent    schedule 17.09.2013    source источник


Ответы (1)


Фу. Почему у вас есть код, специфичный для ОС? Что произойдет, если кто-то использует «linux3»? Вероятно, вы ищете библиотеку curses. .

Обратитесь к ответу Начика на Python прочитал один символ от пользователя

person IceArdor    schedule 20.10.2013