我有shell腳本。其中有:分配shell腳本執行結果給變量
./dtapi get_probability decision_tree simulated_diabetes_incidence_data_new.txt AGE 70 weight 34 height 5.5 sex 0 ds1 34
現在我試圖用python腳本執行此shell腳本並將結果存儲到某個變量中。 test.py包含 -
import os, sys
result = os.system("sh cmd_dtapi.sh")
print "Result is : ", result
但它的行爲是這樣的:
python test.py
{"risk_of_disease":"2.122e-314"}Result is : 0
結果得到直接打印,分配需要0
。
如何將結果存儲到某個變量中?
更新
以下的答案後 -
import subprocess
import json
result_process_output = subprocess.check_output("sh cmd_dtapi.sh")
result_json = json.loads(result_process_output)
result = result_json["risk_of_disease"]
print "Result is : ", result
給人
Traceback (most recent call last):
File "test.py", line 3, in <module>
result_process_output = subprocess.check_output("sh cmd_dtapi.sh")
File "/usr/lib/python2.7/subprocess.py", line 566, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
的面貌邁向子模塊http://stackoverflow.com/questions/4760215/running-shell-command-from-python-and-capturing-the-output https://docs.python.org/ 2/library/subprocess.html –