Verwendung von os.access()
mit os.R_OK
In diesem Schritt verwenden wir die os.access()
-Funktion in Python, um zu prüfen, ob eine Datei Leseberechtigungen hat. Die os.access()
-Funktion nimmt zwei Argumente entgegen: den Dateipfad und ein Berechtigungsflag. Wir verwenden os.R_OK
, um auf Leseberechtigungen zu prüfen.
Zunächst erstellen wir eine neue Python-Datei namens check_permissions.py
im Verzeichnis ~/project
. Öffnen Sie den VS Code-Editor und fügen Sie der Datei den folgenden Code hinzu:
import os
file_path = "my_script.py"
## Check if the file exists
if not os.path.exists(file_path):
print(f"Error: The file '{file_path}' does not exist.")
else:
## Check if the file has read permissions
if os.access(file_path, os.R_OK):
print(f"The file '{file_path}' has read permissions.")
else:
print(f"The file '{file_path}' does not have read permissions.")
Speichern Sie die Datei. Dieses Skript prüft zunächst, ob die Datei my_script.py
existiert. Wenn dies der Fall ist, verwendet es os.access()
mit os.R_OK
, um zu prüfen, ob die Datei Leseberechtigungen hat. Das Skript gibt eine Nachricht aus, die angibt, ob die Datei Leseberechtigungen hat oder nicht.
Führen Sie nun das Skript aus dem Terminal aus:
python check_permissions.py
Sie sollten die folgende Ausgabe sehen:
The file 'my_script.py' has read permissions.
Das liegt daran, dass die Datei my_script.py
standardmäßig für den Eigentümer, die Gruppe und andere Leseberechtigungen hat.
Ändern wir nun die Berechtigungen der Datei my_script.py
, um die Leseberechtigungen für alle außer dem Eigentümer zu entfernen. Wir können dies mit dem chmod
-Befehl im Terminal tun.
chmod 600 my_script.py
Dieser Befehl setzt die Berechtigungen von my_script.py
auf Lesen und Schreiben nur für den Eigentümer (600 in Oktalnotation).
Führen Sie nun das Skript check_permissions.py
erneut aus:
python check_permissions.py
Sie sollten nun die folgende Ausgabe sehen:
The file 'my_script.py' does not have read permissions.
Das liegt daran, dass wir die Leseberechtigungen für die Gruppe und andere entfernt haben. Die os.access()
-Funktion erkennt korrekt, dass die Datei für den Benutzer, der das Skript ausführt (hier labex
), keine Leseberechtigungen mehr hat.
Schließlich stellen wir die ursprünglichen Berechtigungen der Datei my_script.py
wieder her:
chmod 644 my_script.py
Dieser Befehl setzt die Berechtigungen von my_script.py
auf Lesen und Schreiben für den Eigentümer und Nur-Lesen für die Gruppe und andere (644 in Oktalnotation).