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