gpt4 book ai didi

python - 当 Subprocess shell=False 时无法读取响应

转载 作者:行者123 更新时间:2023-12-01 04:35:21 24 4
gpt4 key购买 nike

在下面的代码中,如果在 Windows 平台上执行,我将得到输出

import subprocess
COMMAND = " Application.exe arg1 arg2"
process = subprocess.Popen(COMMAND, stdout=subprocess.PIPE, stderr=None, shell=True)

while process.poll() is None:
output = process.stdout.readline()
print output,

输出>一些文本

但是如果我使用 shell=False 我不会得到输出如何在这种情况下获得响应。

最佳答案

当您设置shell=False时,您必须提供COMMAND作为包含程序名称和参数的列表:

使用shell=True:

COMMAND = "Application.exe arg1 arg2"

使用shell=False:

COMMAND = ["Application.exe", "arg1", "arg2"]

我建议您在任何情况下都避免将 subprocess.Popenshell=True 一起使用,以确保安全措施并使用 communicate()相反,只要有可能:

>>> import subprocess
>>> COMMAND = " Application.exe arg1 arg2".strip().split()
>>> process = subprocess.Popen(COMMAND, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)

>>> output, error = process.communicate()
>>> print output

关于python - 当 Subprocess shell=False 时无法读取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31794296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com