Python,通过管道将多个参数传递给不同的程序

时间:2014-02-19 20:19:28

标签: python subprocess

我有两个python脚本,progA.py和progB.py。我想创建一个管道来将参数从progA传递到progB,并从progA中的progB输出结果。

在progB中接收/读取参数的函数是getParameters()

def getParameters():
    global a, b, c, d, e, f, g, h, i
    sys.stdin.readline() # read a blank line (in input file from simviz1.py)
    a = float(sys.stdin.readline())
    b = float(sys.stdin.readline())
    c = float(sys.stdin.readline())
    d = sys.stdin.readline().strip()  # strip off '\n'
    e = float(sys.stdin.readline())
    f = float(sys.stdin.readline())
    g = float(sys.stdin.readline())
    h = float(sys.stdin.readline())
    i = float(sys.stdin.readline())

if __name__ == "__main__":
    if len(sys.argv) > 1:
        print 'sys.argv[1]:', sys.argv[1]
        if sys.argv[1] == 'default':
            pass # no reading of input
        else:
           getParameters()
    else:
        getParameters()
    myloop()

当我在progA中创建这样的管道时(将'default'传递给progB使用a-i的预定义值)

import subprocess as sp
if __name__ == '__main__':
    echo = sp.Popen(['progB.py','default'],
                    stdin = sp.PIPE,
                    stdout = sp.PIPE,
                    shell = True)

myValue = echo.communicate()[0]
print myValue

我在progA中打印了正确的输出。我试图将修改后的值从progA传递到progB而不是默认值,但对于我的生活,我无法弄清楚如何。我认为我走的是正确的道路,但我被卡住了,我正在寻求帮助。

非常感谢任何提示,提示或建议!!!!!

0 个答案:

没有答案