我想知道是否有可能在bash脚本中包含python脚本,以便(在bash脚本中)编写我在python程序中编写的函数的返回值?
例如:
我的文件“ file.py”具有一个函数,该函数返回变量值“ my_value”(代表文件名,但无论如何)
我想创建一个bash脚本,它必须能够执行像“ ingest my_value”这样的命令行
那么,您是否知道如何在bash脚本中包含python文件(导入…?),以及如何从bash脚本中的python文件中调用值?
先感谢您.
更新资料
实际上,我的python文件如下所示:
class formEvents():
def __init__(self):
...
def myFunc1(self): # function which returns the name of a file that the user choose in his computeur
...
return name_file
def myFunc2(self): # function which calls an existing bash script (bash_file.sh) in writing the name_file inside it (in the middle of a line)
subprocess.call(['./bash_file.sh'])
if__name__="__main__":
FE=formEvents()
我不知道是否足够清楚,但这是我的问题:可以在bash_file.sh内写入name_file
约旦
解决方法:
最简单的方法是通过标准UNIX Pipeline和Shell.
这是一个例子:
foo.sh:
#!/bin/bash
my_value=$(python file.py)
echo $my_value
file.py:
#!/usr/bin/env python
def my_function():
return "my_value"
if __name__ == "__main__":
print(my_function())
它的工作方式很简单:
>您启动foo.sh
> Bash产生一个子进程并运行python file.py
> Python(以及对file.py的解释)运行函数my_function并将其返回值打印到“标准输出”
> Bash在my_value中捕获Python进程的“标准输出”
> Bash然后简单地将存储在my_value中的值也回显到“标准输出”,您应该看到在外壳/终端上打印了“ my_value”.