如何在python脚本中运行.sh脚本并在Python中使用输出

时间:2018-04-23 18:31:59

标签: python

.sh脚本包含我在python脚本中可能需要的所有路径和变量。我不想创建.py文件并将其导出到我的程序中,因为这需要进行大量更改。我尝试使用子进程模块,但不知道如何获取变量以便在py脚本中使用。有什么办法,或者我最终必须导入一个包含所有声明的新.py文件。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您正在尝试在python程序中设置环境变量,这些变量是在shell脚本中设置的。我认为这不可能以任何直截了当的方式进行。但是,您可以为python程序设置一个夹克,在调用python程序之前获取shell脚本。然后Python程序可以访问环境变量os.environ,例如:

import os
print(os.environ['HOME'])

以直接方式无法实现的原因是subprocess(或任何其他运行shell脚本的方法)将在新进程中执行shell脚本,并且在该进程中将丢弃环境变量设置退出。

另一种方法是编写另一个shell脚本,打印所需的所有shell值的名称和值。在你的python程序中,使用subprocess来源原始脚本和你的附加脚本,然后解析输出以提取变量名称和值。这里最棘手的部分是处理值中的特殊字符。