【Python】 標準入力(出力)変更

競技プログラミングを始めて
一番最初にめんどくさいなぁと思った事は
Atcoderとかだと標準入力でデータを渡さないといけないところ。

ローカル環境でテストするとき
みんな、手入力でしているわけではないだろうなぁ、どうしてるんだろうなぁと思いつつ
結果的に僕のローカル環境では
Pythonだと以下のようにして標準入力を変更するようにした。

import sys
import os
FILES = os.listdir('./test')
for FILE in FILES:
    fdr = os.open('./test/' + FILE, os.O_RDONLY)
    os.dup2(fdr, sys.stdin.fileno())
または
import sys
import os
fdr = os.open('test.txt', os.O_RDONLY)
os.dup2(fdr, sys.stdin.fileno())
# fdw = os.open('ret.txt', os.O_WRONLY|os.O_CREAT)
# os.dup2(fdw, sys.stdout.fileno())
これで、標準入力(出力)が指定したファイル先になるので
自分で入力する必要がなくなる。