LoginSignup
2
0

More than 1 year has passed since last update.

pythonで終了条件が指定されていないテキスト情報を標準入力から入力する

Posted at

pythonで終了条件が指定されていないテキスト情報を標準入力から入力する際の備忘録です

以下のようなcsvファイルをpythonで処理したい。
ただし事前に何行あるか不明である、という場合は以下のようにsys.stdin.readlines()で一度全ての入力を受け取ってから処理すると良い。

test.csv
player1,-,L,L,W,L,L,L,W,L,W,W,
player2,W,-,W,W,L,L,L,W,L,L,W,
player3,W,L,-,W,L,L,W,L,L,W,W,
player4,L,L,L,-,W,W,L,L,L,L,W,
player5,W,W,W,L,-,D,L,L,L,W,W,
player6,W,W,W,L,D,-,L,L,W,L,W,
player7,W,W,L,W,W,W,-,L,L,L,W,
player8,L,L,W,W,W,W,W,-,D,W,W,
player9,W,W,W,W,W,L,W,D,-,W,W,
player10,L,W,L,W,L,W,W,L,L,-,W,
player11,L,L,L,L,L,L,L,L,L,L,-,

sys.stdin.readlines()で一度全ての入力を受け取る。

test.py
import sys

ll=[]
# 入力
for line in sys.stdin.readlines():
    A=list(map(str, line.split(',')))
    ll.append(A)

# 出力
for i in ll:
    print(i)

実行結果

$ cat test.csv | python3 test.py 
['player1', '-', 'L', 'L', 'W', 'L', 'L', 'L', 'W', 'L', 'W', 'W', '\n']
['player2', 'W', '-', 'W', 'W', 'L', 'L', 'L', 'W', 'L', 'L', 'W', '\n']
['player3', 'W', 'L', '-', 'W', 'L', 'L', 'W', 'L', 'L', 'W', 'W', '\n']
['player4', 'L', 'L', 'L', '-', 'W', 'W', 'L', 'L', 'L', 'L', 'W', '\n']
['player5', 'W', 'W', 'W', 'L', '-', 'D', 'L', 'L', 'L', 'W', 'W', '\n']
['player6', 'W', 'W', 'W', 'L', 'D', '-', 'L', 'L', 'W', 'L', 'W', '\n']
['player7', 'W', 'W', 'L', 'W', 'W', 'W', '-', 'L', 'L', 'L', 'W', '\n']
['player8', 'L', 'L', 'W', 'W', 'W', 'W', 'W', '-', 'D', 'W', 'W', '\n']
['player9', 'W', 'W', 'W', 'W', 'W', 'L', 'W', 'D', '-', 'W', 'W', '\n']
['player10', 'L', 'W', 'L', 'W', 'L', 'W', 'W', 'L', 'L', '-', 'W', '\n']
['player11', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', '-', '\n']

ただしあまりにも標準入力が多い場合はメモリ制約を受けそうであり別の方法を考えた方が良い場合もありそう。

参考

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0