0.はじめに
Pythonのユーザー入力というとinput()とsys.stdinの2つがありますが、ここではsys.stdinについて記載したいと思います。
1.sys.stdinとは
sys.stdinはファイルオブジェクトの一種で、標準入力(通常はキーボード)から直接データを読み取ることができます。主にスクリプトやプログラムで標準入力から一括してデータを読み取るのに使われます。
2.input()との比較
2.1.対話型入力と一括入力
input(): 対話型で一行ずつ入力を受け取るのに適しています。
sys.stdin: ファイルやパイプからの一括入力や複数行の入力を処理するのに適しています。
2.2.プロンプト表示
input(): プロンプトメッセージを表示してユーザーに入力を促します。
sys.stdin: プロンプトは表示されません。直接入力を受け取ります。
2.3.用途
input(): 主にスクリプトの対話型入力に使用されます。
sys.stdin: 標準入力からのデータ読み込みが必要なスクリプトや、リダイレクトされた入力(ファイルやパイプからの入力)を処理するのに適しています。
3.sys.stdinのコードの例
3.1.sys.stdin.read()のコードの例
import sys
# 標準入力から全ての行を読み取る
input_text = sys.stdin.read()
# 読み取ったテキストを出力する
print("以下のテキストが入力されました:")
print(input_text)
3.2.sys.stdin.readline()のコードの例
import sys
print("入力を終了するには、空行を入力してください。")
while True:
# 標準入力から一行読み取る
line = sys.stdin.readline()
# 空行(改行のみ)が入力された場合、終了
if line == '\n':
break
# 読み取った行を出力
print(f"入力された行: {line}", end='')
print("入力を終了しました。")