调用另一个Python程序并将输出捕获到变量中

20 浏览
0 Comments

调用另一个Python程序并将输出捕获到变量中

这个问题已经有了答案:如何在python中将执行的shell命令的结果存储在变量中?[重复]

我有一个现有的python脚本,带有命令参数,输出像下面这样的字符串。我正在试图调用它到另一个python脚本中,并通过另一个变量动态地传递prodName。

我尝试了这样的代码,它可以工作:

#!/usr/bin/env python
import subprocess
subprocess.call("/usr/st/getProdID.py ProdName=someProd_name Prod_config=/usr/st/prod/prod_id.txt", shell=True)

输出:

Ad897

我无法将这个输出重新定向到一个变量中:

#!/usr/bin/env python
import subprocess
pid = subprocess.call("/usr/st/getProdID.py ProdName=someProd_name Prod_config=/usr/st/prod/prod_id.txt", shell=True)
print "pid = ", pid

输出:

Ad897
Pid = 0

非常感谢您的帮助!

admin 更改状态以发布 2023年5月22日
0
0 Comments

\n\n使用Python3,你可以运行以下命令:\n

p = subprocess.run(["getProdID.py", f"ProdName={prod}", "Prod_config=/usr/st/prod/prod_id.txt"], capture_output=True)
output = p.stdout

\n但在Python2下,稍微麻烦一些:\n

p = subprocess.Popen(["getProdID.py", "ProdName={0}".format(prod), "Prod_config=/usr/st/prod/prod_id.txt"], stdout=subprocess.PIPE)
output = p.stdout.read()

0