如何使用python 2.7从特定文件中读取环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用python 2.7从特定文件中读取环境变量相关的知识,希望对你有一定的参考价值。

为了声明一些环境变量,然后使用它们调用一些python脚本,我创建一个myfile.sh文件,该文件由bash myfile.sh运行。但是,我有很多脚本应该读取这些环境变量,但不能为每个创建一个myfile.sh!

所以我的想法是创建一个环境变量文件,并通过我的每个python脚本访问它。

所以我的问题是,如何使用python 2.7访问这样的文件?

最相关的问题如下:os.environ从哪里读取环境变量?

应该注意的是,我无法安装其他库,如dotenv。因此,如果可能,解决方案应基于标准库。

任何帮助都将受到赞赏!

答案

我必须创建一个应该由我的脚本访问的新环境变量文件。

这不是它的工作原理。您需要的是在调用脚本之前从文件中设置环境变量:

莫邪女.是

export DB_USER="foo"
export DB_PWD="bar"
export DB_NAME="mydb"
# etc

没有script.朋友

import os

DB_USER = os.getenv("DB_USER")
DB_PWD = os.getenv("DB_PWD")
DB_NAME = os.getenv("DB_NAME")

# etc

然后

$ source /path/to/myenv.sh
$ python /path/to/myscript.py

通常,您需要在shell脚本中包含上述两行,以使您的sysadmin生活更轻松。

编辑:如果你想让这些env变量“自动”设置,你总是可以从.bashrc或类似地方获取它们 - 但这是一个系统管理员问题,而不是编程问题。

现在的问题是:你真的需要在这里使用环境变量吗?你也可以使用python设置文件 - 一个只定义那些变量的普通Python模块,即:

没有settings.朋友

DB_USER = "foo"
DB_PWD = "bar"
# etc

并确保包含此脚本的目录的路径位于$ PYTHONPATH中。然后你的脚本只需要导入它(就像它们导入任何其他模块一样),你就完成了。

锦上添花:您甚至可以通过让您的设置模块查找环境变量并提供默认值来混合两种解决方案,即:

没有settings.朋友

import os
DB_USER = os.getenv("DB_USER", "foo")
DB_PWD = os.getenv("DB_PWD", "bar")
# etc
另一答案

从命令行显示环境

  • linux:export
  • 窗口:set

设置环境变量

  • linux:export foo=bar
  • 窗口:set foo=bar

印刷环境是:

  • linux:echo $foo
  • 窗口:echo %foo%

以上是关于如何使用python 2.7从特定文件中读取环境变量的主要内容,如果未能解决你的问题,请参考以下文章

python 2.7文件读取和拆分错误

如何在没有标头信息的 Python 2.7-Pandas 中读取数据

在 Python 3.5 中读取在 Python 2.7 中生成的文件

如何从子进程 python 2.7 和 Apache 读取实时输出

使用Python从包含多组数据的文件中读取特定列

使用 python/pandas 从特定文件夹中读取几个嵌套的 .json 文件到 excel 中