【问题标题】:Passing arguments when python subprocess.Popen in runningpython subprocess.Popen运行时传递参数
【发布时间】:2015-07-09 01:34:14
【问题描述】:

我有一个简单的应用程序 (*.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

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

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

我试过Write_Data.stdin.write(arg3, arg4),但它似乎不起作用。

【问题讨论】:

  • 除非使用html/css/javascript,否则不要使用代码sn-p功能。
  • 代码有错误(["Test.exe", arg1, arg2)],应该是(["Test.exe", arg1, arg2],
  • 我认为你正在做的是唯一的方法,不可能向已经运行的程序发送新参数。

标签: python python-2.7 subprocess


【解决方案1】:

我认为参数不是进程间通信的工具。

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

当您写入标准输入时会发生什么取决于接收者。 但是您可以在命令行上调用您的接收器,看看如果您将某些内容通过管道传输到标准输入会发生什么。

【讨论】:

    猜你喜欢
    • 2014-02-13
    • 2017-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多