gpt4 book ai didi

python - 如何从 Python 脚本返回一个值作为 Bash 变量?

转载 作者:太空狗 更新时间:2023-10-30 01:15:37 31 4
gpt4 key购买 nike

这是我的代码摘要:

# import whatever

def createFolder():
#someCode
var1=Gdrive.createFolder(name)
return var1

def main():
#someCode
var2=createFolder()
return var2

if __name__ == "__main__":
print main()

我设法将值返回给 bash 变量的一种方法是打印从 main() 返回的内容。另一种方法是在脚本的任何地方打印变量

有没有办法以更 pythonic 的方式返回它?

脚本是这样调用的:

folder=$(python create_folder.py "string_as_arg")

最佳答案

一种更 pythonic 的方法是避免 bash 并用 python 编写所有内容。

您不能期望 bash 有一种 Python 式的方式从另一个进程获取值 - 它就是 bash 方式。

bash 和 python 运行在不同的进程中,进程间通信 (IPC) 必须通过内核。有许多 IPC 机制,但 bash 并不支持所有机制(例如共享内存)。这里的最小公分母是 bash,所以你必须使用 bash 支持的,而不是 python 拥有的(python 拥有一切)。

没有共享内存,写入另一个进程的变量不是一件简单的事情——更不用说另一种语言了。调试器会这样做,但它们是专门为宿主语言编写的。

您从 bash 使用的机制是捕获子进程的标准输出,因此 python 必须 print。这在幕后使用了一个匿名管道。您可以改用命名管道(也称为 fifo),python 会将其作为普通文件打开并向其写入。但这不会给你带来太多好处。

关于python - 如何从 Python 脚本返回一个值作为 Bash 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20031505/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com