在python subprocess.Popen运行时传递参数

时间:2015-04-29 16:17:59

标签: python python-2.7 subprocess

我有简单的Application(* .exe),我使用Python subprocess.Popen传递命令行参数,如下所示:

Write_data = Popen(["Test.exe", arg1, arg2)], 
                    cwd = TARGET_PATH,
                    shell = True,
                    stdin=PIPE, 
                    stdout=PIPE)
output = ''
for line in iter(Write_data.stdout.readline, ""):
    print line,
    output += line

我编写了我的应用程序以接收参数并执行某些操作。目前,每次我想用不同的数据测试我的应用程序时,我都会多次调用子进程函数。

是否可以只运行一次子进程并将参数发送到正在运行的进程?

我尝试了Write_Data.stdin.write(arg3, arg4),但它似乎没有效果。

1 个答案:

答案 0 :(得分:0)

我认为论证不是进程间通信的工具。

您可以尝试使用stdin和stdout与正在运行的程序进行交互,但是您只能像写入文件一样写入stdin 并从stdout读取。 stdin中没有参数。

写入stdin时会发生什么情况取决于接收器。 但是你可以在命令行上调用你的接收器,看看如果把东西输入stdin会发生什么。