Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Python函数中检索调用脚本的结果?_Python_Function - Fatal编程技术网

如何从Python函数中检索调用脚本的结果?

如何从Python函数中检索调用脚本的结果?,python,function,Python,Function,我想从函数中调用外部脚本,例如: import subprocess def call_script(script): subprocess.call(script) return answer #retrieving the result is the part I'm struggling with call_script("/user/bin/calc_delta.py") 脚本calc_delta.py在完成后只打印结果。如何将该脚本的结果分配给变量?谢谢。您应该看看s

我想从函数中调用外部脚本,例如:

import subprocess

def call_script(script):
   subprocess.call(script)
   return answer #retrieving the result is the part I'm struggling with

call_script("/user/bin/calc_delta.py")

脚本calc_delta.py在完成后只打印结果。如何将该脚本的结果分配给变量?谢谢。

您应该看看subprocess.Popen()

例如(从文档中):


子流程。call
只会为您的呼叫提供响应代码,而不是输出。

而不是使用
子流程。call
您应该使用
Popen
并在其上调用
通信

这将允许您阅读
stdout
stderr
。您还可以使用
stdin
输入数据

文档中的示例:


用Python≥2.7 / ≥3.1,您可以使用将标准输出转换为str

answer = subprocess.check_output(['/usr/bin/calc_delta.py'])

Python上还有
subprocess.getstatusoutput
subprocess.getoutput
≥3.1如果您需要的是一个shell命令,但它仅在*NIX上受支持。

您应该使用
/
而不是“\”。
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
answer = subprocess.check_output(['/usr/bin/calc_delta.py'])