调用另一个python并在变量中捕获输出



我有一个带有命令参数的现有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

任何帮助都是感激的。谢谢!

使用Python3可以运行:

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

在Python2上,事情更加棘手:

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

相关内容

  • 没有找到相关文章

最新更新