【问题标题】:Send input to program opened with subprocess using python?使用python将输入发送到使用子进程打开的程序?
【发布时间】:2015-01-27 22:18:27
【问题描述】:

我有以下 python 代码,只是想在终端询问特定问题时向终端发送命令。这是我到目前为止所拥有的

import subprocess
import sys
cmd = "Some application"
dat = str("")

p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE, 
                     stdin=subprocess.PIPE, stdout=subprocess.PIPE)

【问题讨论】:

标签: python linux


【解决方案1】:
p.communicate(input="this is my input to the subprocess")

如果您需要捕获输出,请改为:

output = p.communicate(input="this is my input to the subprocess")[0]

【讨论】:

  • 嗯,最后按回车?我以为它会是 p.communicate(input="this is my input to the subprocess/n")[0]
  • 是的,如果应用程序需要它,您可以在输入参数中显式包含换行符(我没有对您使用子进程调用的内容做出任何假设)
  • 应用程序希望用户按回车键,但它似乎不喜欢代码。应用程序询问“您要继续吗?(n/Y)”但不会接受“Y/n”
  • 我在函数之前和之后放置了一个打印件,但实际上并没有超过这一点。任何帮助将不胜感激。
  • 如果不了解更多关于子进程打开的应用程序以及调用此子进程的 Python 代码的完整主体,就没有什么可做的了。也许在“你想继续”问题之后期待额外的交互式输入吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2012-12-29
  • 2022-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多