os.environ și os.getenv() în Python

Sistem de operare (os) Python 3.0+ (reload_environ: 3.14+)

Citește și setează variabilele de mediu: chei API, setări, PATH.

Sintaxă
os.environ["NUME"]
os.getenv("NUME", implicit=None)
os.putenv(nume, valoare) / os.unsetenv(nume)
os.get_exec_path(env=None)
os.reload_environ()

Ce face os.environ și os.getenv()

os.environ este un dicționar cu variabilele de mediu ale procesului. Citești cu os.environ["NUME"] (aruncă KeyError dacă lipsește) sau cu os.getenv("NUME", implicit). Modificările din os.environ se văd și în programele pornite ulterior cu subprocess. os.getenvb() citește ca bytes (doar Unix).

putenv() și unsetenv() schimbă mediul la nivel de sistem fără să actualizeze os.environ, deci este mai bine să modifici direct dicționarul. get_exec_path() returnează lista directoarelor din PATH. reload_environ() (3.14+) reîncarcă os.environ după modificări făcute din afara lui Python.

Variabilele de mediu sunt locul potrivit pentru parole și chei API: nu le scrie în cod.

Parametri

Parametru Descriere
NUME / key Numele variabilei.
implicit / default Valoarea returnată de getenv dacă variabila lipsește.

Ce returnează

Textul variabilei, valoarea implicită sau None.

Exemple

Exemplul 1: Configurare din mediu

import os
os.environ["APP_PORT"] = "8080"
port = int(os.getenv("APP_PORT", "80"))
debug = os.getenv("APP_DEBUG", "nu") == "da"
print(port, debug)
print("APP_PORT" in os.environ, os.environ.get("CHEIE_API"))
del os.environ["APP_PORT"]
print(os.getenv("APP_PORT"))

Rezultat

8080 False
True None
None

Exemplul 2: PATH și celelalte funcții

import os
print(os.get_exec_path({"PATH": "/usr/local/bin:/usr/bin"}))
os.putenv("DOAR_SISTEM", "1")
print("DOAR_SISTEM" in os.environ)
os.environ["TEST_B"] = "ă"
print(os.getenvb(b"TEST_B"))
os.unsetenv("DOAR_SISTEM")
os.reload_environ()
print("TEST_B" in os.environ)

Rezultat

['/usr/local/bin', '/usr/bin']
False
b'\xc4\x83'
True

Greșeli frecvente

  • Pui un număr în os.environ: os.environ["PORT"] = 8080 dă TypeError: str expected. Valorile sunt întotdeauna texte.
  • Citești cu os.environ["CHEIE"] o variabilă care poate lipsi și programul se oprește cu KeyError. Folosește os.getenv cu valoare implicită.

Comenzi înrudite