全部自動化するならあらかじめ入力内容をテキストファイルに書き出すということですよね?
だとすると、pythonではなく、シェルのリダイレクトの問題ですね。
シェルの入出力制御あれこれ
exc.py
lang
1import os
2
3os.system("python3 test.py < hoge.txt")
test.py
lang
1print("test")
2s=input()
3print(s)
4print("finish")
hoge.txt
シェルで実行
$ python3 exc.py
test
piyo
finish
##追記
複数回実行したいということでしたね。追記させていただきます。
いろいろ方法は考えられますが、test.pyを変更しない場合は、例えば10回行うなら、hoge0.txt〜hoge9.txtと入力ファイルを10個分用意して(以下では、各ファイルにはpiyo0〜piyo9が入っているとします。)、それをexc.pyのほうでfor
で回すという手があります。
ファイルを用意するのは面倒かもしれませんけど、てっとり早い方法です。
exc2.py
lang
1import os
2
3for i in range(10):
4 os.system("python3 test.py < hoge"+str(i)+".txt")
ちなみにファイルの数が合わなくてもos.systemは例外を出さないのでこのままで大丈夫でしょう。
$ python3 exc2.py
test
piyo0
finish
test
piyo1
finish
・
・
・
finish
test
piyo9
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/09 13:38
2017/11/09 13:52
2017/11/09 14:03