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

2024-05-01 22:08:43 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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")

脚本计算_增量.py完成后只需打印结果。如何将脚本的结果赋给变量?非常感谢。你知道吗


Tags: the函数answerpyimport脚本returnis
3条回答

在Python≥2.7/≥3.1中,可以使用^{}将stdout转换为str

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

如果您需要的是shell命令,那么Python≥3.1上也有subprocess.getstatusoutputsubprocess.getoutput,但是只有*NIX支持它。你知道吗

与其使用subprocess.call,不如使用Popen并对其调用communicate。你知道吗

这将允许您读取stdoutstderr。也可以使用stdin输入数据。你知道吗

文档http://docs.python.org/library/subprocess.html#replacing-bin-sh-shell-backquote中的示例:

output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]

你应该看看子流程.Popen(popen

例如(来自文档):

pipe = Popen("cmd", shell=True, bufsize=bufsize, stdout=PIPE).stdout

subprocess.call只提供调用的响应代码,而不是输出。你知道吗

相关问题 更多 >