ホームページ  >  記事  >  バックエンド開発  >  シェルで Enter キーを押さずにユーザー入力を取得するにはどうすればよいですか?

シェルで Enter キーを押さずにユーザー入力を取得するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-10 02:03:02631ブラウズ

How to Get User Input Without Pressing Enter in the Shell?

シェルで Enter キーを押さずにユーザー入力を取得する

Python で raw_input を使用してシェルでユーザーと対話したいと考えていますが、応答を入力した後に Enter キーを押す必要はありません。

Windows解決策

Windows の場合は、msvcrt モジュール、特に msvcrt.getch 関数を使用できます。

import msvcrt

c = msvcrt.getch()
if c.upper() == 'S':
    print('YES')

Unix 解決策

Unix の場合、このレシピを参照して同様の getch を作成できます。 function:

import tty
import termios

def getch():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(fd)
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch

この関数を使用すると、Enter キーを押さずにユーザー入力を取得できます:

c = getch()
if c.upper() == 'S':
    print('YES')

以上がシェルで Enter キーを押さずにユーザー入力を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。