按任意键继续(Python,跨平台解决方案)

时间:2013-09-17 09:22:49

标签: python python-2.7 cross-platform stdin fcntl

我正在尝试使用Python 2.7.x在Linux / Mac / Windows计算机上创建脚本的一种行为。

在这个主题的帮助下:

我可以达到预期的效果:按任意键脚本都会退出。

但也许有更好的方法可以做到这一点?有人可以帮帮我吗?

谢谢!

#!/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()

1 个答案:

答案 0 :(得分:0)

呸。为什么你有特定于操作系统的代码?如果有人使用'linux3'会怎么样? 您可能正在寻找curses库。

请参阅Python read a single character from the user

上的nachik答案