簡體   English   中英

使用參數替換將bash環境變量集讀取到Python變量中

[英]Reading bash environment variable set using parameter substitution into Python variable

我的.env文件中包含以下環境變量:

DT="2019-01-01"
X=${DT//-/}

變量X是使用Bash的參數替換設置的,使用${parameter//pattern/string}格式替換所有出現的位置( 此處提供文檔)。

現在,要將環境變量讀入Python,我在文件config.py創建了一個Python類Config

from dotenv import find_dotenv, load_dotenv
import os

class Config:
    def __init__(self):
        load_dotenv(find_dotenv())

        self.X = os.environ.get('X')

python shell中,我運行:

In [1]: from config import Config

In [2]: c = Config()

In [3]: c.X
Out[3]: ''

這里cX是一個空字符串'' ,我希望它是'20190101'

如何將環境變量的正確值加載到python變量中?

編輯:當我在bash腳本中鍵入echo $X時,它將打印正確的值。 例如,一個bash腳本sample.sh

#!/bin/bash
source .env

echo $X

運行時,我得到:

$ sh sample.sh
20190101

Dotenv不使用Bash; 它在內部解析文件。 請參閱dotenv GitHub頁面

直接使用DT代替:

self.X = os.environ.get('DT').replace('-', '')

我以這種方式在.env文件中添加了export

DT="2019-01-01"
export X=${DT//-/}

這使我能夠在Python中獲得正確的cX值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM