gpt4 book ai didi

python - 我怎样才能知道 os.popen 是否在同一个 shell 中运行 linux 命令?

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:38 25 4
gpt4 key购买 nike

我使用以下 python 函数运行 linux 命令。我正在运行一个创建一些环境变量的脚本,然后我通过使用下面的函数运行 linux 命令,再次将所有这些变量移植到脚本中;然而,似乎第一个命令的环境变量没有被第二个命令记录下来。我想知道是不是因为 os.popen 每次调用它时都在不同的 shell 中运行命令?如果是这样,我该如何修改我的代码或使用哪个函数让所有内容都在同一个 shell 中运行?

def execute(cmd):
'''Module to execute linux command'''
try:
proc = os.popen(cmd)
out = proc.read().strip()
return out
except Exception,err:
print "Exception occurred : %s"%str(err)
raise(str(err))

最佳答案

os.popen() 已弃用。取而代之的是 subprocess.Popen(),也许更适合您的用例,subprocess.check_output()。这些新方法采用可选的 env 参数,它是环境变量名称和值的字典。你可以在那里传递任何你需要的东西。

或者,如果你真的想在外部设置变量并让它们“粘”在子进程中,你可以在运行之前在 shell 中export它们(export myvarname) python 。

关于python - 我怎样才能知道 os.popen 是否在同一个 shell 中运行 linux 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26383148/

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