コードは次のとおりです。
from subprocess import Popen, PIPE
p1 = Popen("command1", stdout = PIPE)
p2 = Popen("command2", stdin = p1.stdout, stdout = PIPE)
result_a = p2.communicate()[0]
p1_again = Popen("command1", stdout = PIPE)
p3 = Popen("command3", stdin = p1_again.stdout, stdout = PIPE)
result_b = p3.communicate()[0]
with open("test") as tf:
p1_again_again = Popen("command1", stdout = tf)
p1_again_again.communicate()
悪い部分は次のとおりです。
一度使用すると、そのオブジェクトのは二度と使用できないcommand1
ため、は3回実行されました。の中間結果を再利用する方法があるかどうか疑問に思っていました。commnnicate
stdout
Popen
PIPE
これらのコードをより良くする方法(パフォーマンスを向上させ、コードの行を減らす)について誰かがアイデアを持っていますか?ありがとう!