调用另一个Python程序并将输出捕获到变量中
调用另一个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日
\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()