Python で raw_input を使用してシェルでユーザーと対話する場合、ユーザーは通常、次のことを行う必要があります。回答を入力したら Enter キーを押してください。これは、特に入力プロセスを効率化したい場合には不便になる可能性があります。 *nixes マシンでこれを実現する方法は次のとおりです。
Windows の場合、msvcrt モジュール、特に msvcrt.getch() 関数が必要になります。この関数はキー押下を読み取り、結果の文字をコンソールにエコーせずに返します。キー押下がまだ利用可能でない場合は実行をブロックしますが、Enter を待機しません。
import msvcrt c = msvcrt.getch() if c.upper() == 'S': print('YES')
Unix ベースのシステムの場合は、getch 関数の使用を検討してください。次のレシピから:
def getch(): """ getch() -> key character Read a single keypress without echoing to the console. """ import tty import sys fd = sys.stdin.fileno() old_settings = tty.tcgetattr(fd) try: tty.setraw(fd) ch = sys.stdin.read(1) finally: tty.tcsetattr(fd, tty.TCSADRAIN, old_settings) return ch
この関数は端末のバッファリングを無効にし、入力を待たずに 1 回のキー入力を可能にします。 Enter キー。
これらのアプローチを実装すると、Enter キーを押すことなく Python スクリプトでユーザー入力を収集でき、シェル対話中のユーザー エクスペリエンスが向上します。
以上がEnter キーを必要とせずに Python でユーザー入力を収集するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。