Pythonでstdinから読み込む方法はどうすればいいですか。

Pythonで標準入力からデータを読み取る方法は3つあります。

    1. sys.stdin

 

    1. 入力を取得するためのsys.stdin

input() built-in function
入力を取得するためのinput()関数

fileinput.input() function
入力を取得するためのfileinput.input()関数

標準入力から読み込むためにsys.stdinを使用する

インタプリタによって、Pythonのsysモジュールのstdinは標準入力に使用されます。内部的には、input()関数が呼び出されます。入力文字列は最後に改行文字(\n)が追加されます。したがって、rstrip()関数を使用してそれを削除することができます。以下は、標準入力からユーザーメッセージを読み取り、処理するための簡単なプログラムです。ユーザーが「Exit」というメッセージを入力すると、プログラムは終了します。

import sys

for line in sys.stdin:
    if 'Exit' == line.rstrip():
        break
    print(f'Processing Message from sys.stdin *****{line}*****')
print("Done")

出力:

Hi
Processing Message from sys.stdin *****Hi
*****
Hello
Processing Message from sys.stdin *****Hello
*****
Exit
Done
Python Stdin Example

ユーザーが「Exit」メッセージを入力したかどうかをチェックするために、rstrip()を使用して末尾の改行文字を削除することに注意してください。

2. stdinデータを読み込むためにinput()関数を使用する。

Pythonのinput()関数を使用することで、標準入力データを読み取ることもできます。また、ユーザーにメッセージを表示することもできます。以下は、ユーザーが”Exit”メッセージを入力するまで、標準入力メッセージを読み取り、処理する無限ループの単純な例です。

while True:
    data = input("Please enter the message:\n")
    if 'Exit' == data:
        break
    print(f'Processing Message from input() *****{data}*****')

print("Done")

出力:

Python Input Read From Stdin

input()関数は、ユーザーメッセージに改行文字を追加しません。

3. fileinputモジュールを使用して標準入力を読み込む。

標準入力から読み取るために、fileinput.input() 関数も使うことができます。fileinput モジュールでは、標準入力やファイルリストにループするためのユーティリティ関数が提供されています。input() 関数に引数を指定しない場合、標準入力から引数を読み取ります。この関数は sys.stdin と同様に動作し、ユーザーが入力したデータの末尾に改行文字を追加します。

import fileinput

for fileinput_line in fileinput.input():
    if 'Exit' == fileinput_line.rstrip():
        break
    print(f'Processing Message from fileinput.input() *****{fileinput_line}*****')

print("Done")

出力:

Python Fileinput Read Standard Input
コメントを残す 0

Your email address will not be published. Required fields are marked *