Κατανόηση των διαφορών μεταξύ os.getenv και os.environ στην Python

1
Κατανόηση των διαφορών μεταξύ os.getenv και os.environ στην Python

Όταν εργάζεστε με την Python, μπορεί να συναντήσετε το os.getenv και os.environ λειτουργίες. Ενώ και οι δύο αυτές λειτουργίες χρησιμοποιούνται για πρόσβαση σε μεταβλητές περιβάλλοντος, λειτουργούν με ελαφρώς διαφορετικούς τρόπους. Σε αυτήν την ανάρτηση ιστολογίου, θα διερευνήσουμε τις διαφορές μεταξύ os.getenv και os.environκαι συζητήστε ποιο είναι καλύτερο να χρησιμοποιήσετε σε διαφορετικές καταστάσεις.

Τι είναι οι μεταβλητές περιβάλλοντος;

Πριν βουτήξουμε στις διαφορές μεταξύ os.getenv και os.environας συζητήσουμε πρώτα ποιες είναι οι μεταβλητές περιβάλλοντος.

Οι μεταβλητές περιβάλλοντος είναι ένας τρόπος αποθήκευσης και διαχείρισης ρυθμίσεων διαμόρφωσης που χρησιμοποιούνται από το λειτουργικό σύστημα και τα προγράμματα που εκτελούνται σε αυτό. Αυτές οι μεταβλητές είναι ουσιαστικά ζεύγη κλειδιού-τιμής, όπου το κλειδί είναι το όνομα της μεταβλητής και η τιμή είναι η τιμή που εκχωρείται σε αυτήν τη μεταβλητή.

Μερικά κοινά παραδείγματα μεταβλητών περιβάλλοντος περιλαμβάνουν:

  • PATH – που παραθέτει τους καταλόγους που θα αναζητήσει το λειτουργικό σύστημα για εκτελέσιμα αρχεία
  • HOME – που καθορίζει τον αρχικό κατάλογο του τρέχοντος χρήστη
  • USER – που περιέχει το όνομα του τρέχοντος χρήστη

os.getenv

ο os.getenv Η συνάρτηση είναι μια ενσωματωμένη συνάρτηση Python που σας επιτρέπει να ανακτήσετε την τιμή μιας συγκεκριμένης μεταβλητής περιβάλλοντος. Εδώ είναι η βασική σύνταξη για χρήση os.getenv:

os.getenv(variable_name, default_value)

ο variable_name παράμετρος είναι το όνομα της μεταβλητής περιβάλλοντος που θέλετε να ανακτήσετε. ο default_value Η παράμετρος είναι μια προαιρετική παράμετρος που καθορίζει την προεπιλεγμένη τιμή που θα επιστραφεί εάν δεν έχει οριστεί η μεταβλητή περιβάλλοντος. Εάν έχει οριστεί η μεταβλητή περιβάλλοντος, os.getenv επιστρέφει την τιμή της μεταβλητής περιβάλλοντος ως συμβολοσειρά.

Εδώ είναι ένα παράδειγμα χρήσης os.getenv για να ανακτήσετε την τιμή του HOME μεταβλητή περιβάλλοντος:

import os

home_directory = os.getenv('HOME')
print(home_directory)

Σε αυτό το παράδειγμα, os.getenv χρησιμοποιείται για την ανάκτηση της τιμής του HOME μεταβλητή περιβάλλοντος. Αν το HOME έχει οριστεί η μεταβλητή περιβάλλοντος, home_directory θα οριστεί στην τιμή του. Εάν δεν έχει οριστεί, home_directory θα οριστεί σε None.

os.περιβάλλον

ο os.environ Το λεξικό είναι ένα ενσωματωμένο λεξικό Python που περιέχει όλες τις μεταβλητές περιβάλλοντος που έχουν οριστεί επί του παρόντος στο λειτουργικό σύστημα. Ακολουθεί ένα παράδειγμα για τον τρόπο πρόσβασης στο os.environ λεξικό:

import os

for key, value in os.environ.items():
    print(key, value)

Σε αυτό το παράδειγμα, χρησιμοποιούμε έναν βρόχο for για να επαναλάβουμε όλα τα ζεύγη κλειδιού-τιμής στο os.environ λεξικό και εκτυπώστε τα.

Μπορείτε επίσης να αποκτήσετε πρόσβαση σε μια συγκεκριμένη μεταβλητή περιβάλλοντος χρησιμοποιώντας το [] χειριστή, ως εξής:

import os

home_directory = os.environ['HOME']
print(home_directory)

Σε αυτό το παράδειγμα, os.environ['HOME'] ανακτά την τιμή του HOME μεταβλητή περιβάλλοντος.

Διαφορές μεταξύ os.getenv και os.environ

Η κύρια διαφορά μεταξύ os.getenv και os.environ είναι αυτό os.getenv ανακτά την τιμή μιας συγκεκριμένης μεταβλητής περιβάλλοντος, ενώ os.environ περιέχει όλες τις μεταβλητές περιβάλλοντος που έχουν οριστεί επί του παρόντος στο λειτουργικό σύστημα.

Ακολουθούν μερικές άλλες διαφορές που πρέπει να έχετε κατά νου:

  • os.getenv παίρνει ένα προαιρετικό default_value παράμετρος, η οποία σας επιτρέπει να καθορίσετε μια προεπιλεγμένη τιμή που θα επιστρέψετε εάν δεν έχει οριστεί η μεταβλητή περιβάλλοντος. os.environ δεν έχει αυτή την επιλογή.
  • Εάν χρησιμοποιείτε os.environ για να τροποποιήσετε μια μεταβλητή περιβάλλοντος, η αλλαγή θα αντικατοπτρίζεται σε όλες τις υποδιεργασίες που ξεκινούν από το πρόγραμμά σας Python. Εάν χρησιμοποιείτε os.getenv για να τροποποιήσετε μια μεταβλητή περιβάλλοντος, η αλλαγή θα επηρεάσει μόνο το πρόγραμμά σας Python.
  • os.getenv επιστρέφει None εάν η καθορισμένη μεταβλητή περιβάλλοντος δεν είναι

Must Learn – Ασφαλίστε το SECRET_KEY της εφαρμογής Django με ένα αρχείο .env


Schreibe einen Kommentar