从shell脚本调用Python函数

前端之家收集整理的这篇文章主要介绍了从shell脚本调用Python函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道如何从 shell脚本调用 Python函数.

我有一个具有多个函数的Python文件,我需要使用它们在我的shell脚本中返回的值.有办法做到吗

我正在这样做,以便使用Python读取一个配置文件,并在shell中获取值.有没有其他更好的方式来实现这一点.

test.py包含:

import ConfigParser

config = ConfigParser.ConfigParser()
config.read("test.conf")

def get_foo():
    return config.get("locations","foo")

def get_bar():
    return config.get("locations","bar")

我需要将Python函数返回的值存储在一个shell变量中.

您可以通过要求Python解释器打印结果,将函数的结果发送到标准输出
python -c 'import test; print test.get_foo()'

-c选项只是要求Python执行一些Python命令.

为了将结果存储在变量中,您可以执行以下操作:

RESULT_FOO=`python -c 'import test; print test.get_foo()'`

或等效地

RESULT=$(python -c 'import test; print test.get_foo()')

因为反引号和$(…)评估一个命令并将其替换为其输出.

PS:获取每个功能的结果需要使用这种方法每次解析配置文件.这可以通过一次性返回所有结果来优化,具体如下:

ALL_RESULTS=$(python -c 'import test; print test.get_foo(),test.get_bar()')

然后可以将结果拆分并放入不同的变量中

RESULT_BAR=$(echo $ALL_RESULTS | cut -d' ' -f2)

它采用第二个结果并将其放在RESULT_BAR中(例如,同样:-fn为result #n).

PPS:正如Pablo Maurin所说,如果可能,在一个解释器(Python,但也可能是shell)中执行所有操作可能更容易,而不是在一个程序中计算变量并在另一个程序中使用它们.

猜你在找的Bash相关文章