Skip to content

Latest commit

 

History

History
55 lines (38 loc) · 1.41 KB

3.python-subprocess-2.md

File metadata and controls

55 lines (38 loc) · 1.41 KB

Python の subprocess その 2

まあいけるやろと思うけど,昨日のが複数呼ぶ時でも大丈夫かどうか. 足し算やさんと掛け算やさんを呼んでみよう.

call する側の caller.py

#!/usr/bin/python

import subprocess as sub

adder = sub.Popen("./adder.py", stdin=sub.PIPE, stdout=sub.PIPE, )
multiplier = sub.Popen("./multiplier.py", stdin=sub.PIPE, stdout=sub.PIPE, )


a,b = 3,4

adder.stdin.write("%s %s\n"%(a,b))
multiplier.stdin.write("%s %s\n"%(a,b))

added = adder.stdout.readline()
multiplied = multiplier.stdout.readline()

print added, multiplied,

if adder.poll() is None:
    adder.terminate()

if multiplier.poll() is None:
    multiplier.terminate()

adder.py

#!/usr/bin/python
# adder.py
import sys

while True:
    nums = raw_input()
    if nums == "quit":
        break
    else:
        a, b = map(float, nums.split())
        print a+b
        sys.stdout.flush()

これの a+ba*b にした multiplier.py を用意すればちゃんと走る. この,readline() とかそれにまつわる改行コードとかは改善できそうですね.たしかそういう読み方もあったはず(うろ覚え).

しかしどうなんだろう,こういう呼び方でいいんだろうか.