如何不新建.env文件从存储路径的环境变量中读取对应文件的内容?
解决方案
你当前在环境变量DB_PASS中存储的是密码文件的路径,而非密码本身,因此直接读取环境变量只能得到路径值,需要额外读取对应路径的文件内容才能拿到实际密码。
另外你原有代码存在语法问题:os.environ.get()的入参需要是字符串格式的环境变量名,未加引号的DB_PASS会被识别为未定义的Python变量,触发NameError报错。
正确实现逻辑如下:
- 先通过
os.environ.get("DB_PASS")获取密码文件的完整路径 - 打开对应路径的文件读取内容,使用
strip()方法去除文件末尾自带的换行符等空白字符,得到纯密码内容
完整代码示例:
import os # 获取密码文件路径 pwd_path = os.environ.get("DB_PASS") # 读取文件获取实际密码 with open(pwd_path, "r") as f: db_pwd = f.read().strip() print(db_pwd)
注意:确保你运行Python脚本的终端会话和执行
export DB_PASS命令的是同一个会话,新开终端会丢失临时环境变量,需要重新执行导出命令才能正常读取。
内容的提问来源于stack exchange,提问作者hang
相关产品推荐
相关产品推荐

