Lesen Sie Systemumgebungsvariablen mit Python-Teil 1

Gliederung / Zweck

Verwenden Sie os.environ, um Systemumgebungsvariablen abzurufen. Die in der Anwendung verwendeten Einstellungsinformationen können in die Einstellungsdatei usw. geschrieben werden, und DI kann durchgeführt werden. Wenn es viele Konfigurationsdateien gibt oder der Entwicklungsstatus (Develop-Staging-Release) kompliziert ist Die Wartungskosten steigen und die Fehlerwahrscheinlichkeit steigt. Ich dachte, dass es möglich wäre, die Wartungskosten der Einstellungsdatei zu reduzieren, indem die Einstellungsinformationen in der Systemumgebungsvariablen gehalten werden. Ich habe ein Programm untersucht, das Systemumgebungsvariablen verwendet.

Tiefes Graben über os.environ

os.environ enthält Systemumgebungsvariablen als Wörterbuch. Sie können auf die Systemumgebungsvariablen verweisen, bis Python ausgeführt wird. os library

Abrufen von Systemumgebungsvariablen

Geben Sie den Namen der Systemumgebungsvariablen in os.environ an, um die Systemumgebungsvariable abzurufen. Das Ergebnis ist das gleiche wie der Name der SET% -Systemumgebungsvariablen%, der an der Eingabeaufforderung ausgeführt wird.

$ python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print(os.environ['HOMEDRIVE'])
C:
>>>

KeyError tritt auf, wenn ein nicht vorhandener Systemumgebungsvariablenname angegeben wird.

$ python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['TEST']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python38\lib\os.py", line 673, in __getitem__
    raise KeyError(key) from None
KeyError: 'TEST'
>>>

Verwenden Sie "os.getenv (Schlüssel, Standard = Wert)", wenn keine Ausnahme für einen nicht vorhandenen Systemumgebungsvariablennamen auftreten soll. Wenn der Schlüssel nicht vorhanden ist, wird der angegebene Wert von "Standard" zurückgegeben. Wenn default nicht angegeben ist, ist es None. Gleiches gilt für os.environ.get (key ). "os.getenv (Schlüssel, Standard = Wert)" ist ein Alias für "os.environ.get (Schlüssel)".

$ python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> value = os.getenv("TEST", "defaultvalue")
>>> print(f"TEST={value}")
TEST=defaultvalue
>>>

So aktualisieren Sie Systemumgebungsvariablen

Da os.environ ein Wörterbuchtyp ist, legen Sie einfach Systemumgebungsvariablen und -werte fest Wenn der Name der Systemumgebungsvariablen nicht vorhanden ist, wird er hinzugefügt, und wenn er vorhanden ist, wird er überschrieben. Verwenden Sie zum Löschen die Anweisung del. del os.environ [Name der Systemumgebungsvariablen]

$ python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> value = os.environ["TEST"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python38\lib\os.py", line 673, in __getitem__
    raise KeyError(key) from None
KeyError: 'TEST'
>>> os.environ["TEST"] = "PYTHON"
>>> value = os.environ["TEST"]
>>> print(f"TEST={value}")
TEST=PYTHON
>>> os.environ["TEST"] = "PYTHON3"
>>> value = os.environ["TEST"]
>>> print(f"TEST={value}")
TEST=PYTHON3
>>> del os.environ["TEST"]
>>> value = os.environ["TEST"]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Program Files\Python38\lib\os.py", line 673, in __getitem__
    raise KeyError(key) from None
KeyError: 'TEST'
>>>

Es gibt auch eine Funktion, die Systemumgebungsvariablen festlegt, ohne os.environ direkt zu ändern. Sie können Systemumgebungsvariablen mit "putenv (Schlüssel, Wert)" hinzufügen oder aktualisieren, das mit "getenv" gepaart ist, aber die offizielle Dokumentation enthält einen solchen Hinweis.

Os.putenv-Zitat

Wenn putenv () unterstützt wird, wird es durch Zuweisen zu einem Element in os.environ automatisch in den entsprechenden Aufruf von putenv () konvertiert. Wenn Sie putenv () direkt aufrufen, wird os.environ nicht aktualisiert. Es ist daher besser, es einem Element in os.environ zuzuweisen. Senden Sie das Überwachungsereignis os.putenv mit den Argumenten Schlüssel und Wert.

Es scheint ein Fehler zu sein, dass die von putenv () aktualisierte Systemumgebungsvariable nicht in os.environ wiedergegeben wird, aber Sie können sie mit Daten vom Wörterbuchtyp behandeln.

Recommended Posts

Lesen Sie Systemumgebungsvariablen mit Python-Teil 1
Lesen Sie Systemumgebungsvariablen mit Python-Teil 2
Umgebungsvariablen mit Lambda-Uploader einstellen
Shell-Variablen, Umgebungsvariablen
Python-Umgebung mit Docker-Compose
[Für Anfänger] Lesen Sie die DB-Authentifizierungsinformationen aus Umgebungsvariablen
Lesen Sie Excel mit openpyxl
Virtuelle Umgebung mit Python 3.6
Mongodb Zugang mit Pymongo
[Hinweis] Betreiben Sie MongoDB mit Python
Grundlagen zum Berühren von MongoDB mit MongoEngine
Bearbeiten von Strings mit Pandas gruppieren nach
Lesen Sie Systemumgebungsvariablen mit Python-Teil 1
Lesen Sie Systemumgebungsvariablen mit Python-Teil 2
Umgebungsvariablen bei Verwendung von Tkinter
Lesen Sie CSV mit Python-Pandas
Einfache toxische Umgebung mit Jenkins
Lesen Sie die Bildkoordinaten mit Python-matplotlib
Handle Go-Umgebungsvariablen (Viper)
Erstellen Sie eine Umgebung mit virtualenv
Minimale Konfigurations-Website-Umgebung mit Django
Installieren Sie die Python-Umgebung mit Anaconda
Verwalten Sie die Python-Umgebung mit virtualenv
Was sind Umgebungsvariablen? (Linux)
Venv Umgebung mit Windows Powershell
Behandeln Sie Umgebungsvariablen in Python
Erstellen Sie eine Python3-Umgebung mit Ubuntu 16.04
HTTP-Umgebungsvariablen in Flask
Bereiten Sie die Python3-Umgebung mit Docker vor
Erstellen Sie mit direnv eine Python-Umgebung
Präsentationsunterstützungssystem mit Python3
Wechseln Sie die virtuelle Umgebung mit Jupiter
Lesen von JSON-Daten mit Python