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

Patricia Arquette
リリース: 2024-11-10 02:03:02
オリジナル
628 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート