要捕获对subprocess.run()
的输入,可以使用subprocess.PIPE
作为stdin
参数的值。下面是一个示例代码:
import subprocess
# 要执行的命令
command = ["python", "-c", "print(input('Enter something: '))"]
# 使用subprocess.run()执行命令,并捕获输入
result = subprocess.run(command, input="Hello, World!\n", text=True, capture_output=True)
# 打印命令的输出结果
print(result.stdout)
在上面的例子中,subprocess.run()
执行了一个简单的Python命令,它会要求用户输入一些内容,并将输入的内容打印出来。通过将input
参数设置为"Hello, World!\n"
,我们为命令提供了输入。
text=True
参数将使subprocess.run()
返回的结果中的stdout
和stderr
以文本形式(字符串)返回。
capture_output=True
参数将捕获命令的输出结果,这样可以通过result.stdout
来访问命令的标准输出。
请注意,subprocess.run()
是在Python 3.5及更高版本中引入的。如果你使用的是较旧的Python版本,可以考虑使用subprocess.Popen()
来实现类似的功能。