Versuch, eine Datei zum Schreiben zu öffnen
In diesem Schritt werden wir sehen, was passiert, wenn wir versuchen, eine Datei zum Schreiben zu öffnen, ohne die erforderlichen Berechtigungen zu haben. Dies wird uns helfen, zu verstehen, wie Python Berechtigungsfehler behandelt.
Zunächst entfernen wir erneut die Schreibberechtigung von my_file.txt
:
chmod u-w my_file.txt
Jetzt erstellen wir ein Python-Skript, das versucht, die Datei zum Schreiben zu öffnen. Öffnen Sie den VS Code-Editor und erstellen Sie eine neue Datei namens attempt_write.py
im Verzeichnis ~/project
.
Fügen Sie der Datei folgenden Code hinzu:
file_path = "my_file.txt"
try:
with open(file_path, "w") as f:
f.write("This is a test.")
print("File written successfully.")
except Exception as e:
print(f"Error writing to file: {e}")
So funktioniert der Code:
- Es definiert eine Variable
file_path
, die den Namen der Datei speichert, in die wir schreiben möchten.
- Es verwendet einen
try...except
-Block, um potenzielle Fehler zu behandeln.
- Innerhalb des
try
-Blocks versucht es, die Datei im Schreibmodus ("w"
) zu öffnen.
- Wenn die Datei erfolgreich geöffnet wird, schreibt es die Zeichenkette "This is a test." in die Datei.
- Wenn ein Fehler auftritt (z. B. aufgrund fehlender Schreibberechtigungen), fängt der
except
-Block die Ausnahme ab und gibt eine Fehlermeldung aus.
Jetzt führen wir das Skript aus:
python attempt_write.py
Da wir die Schreibberechtigungen entfernt haben, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
Error writing to file: [Errno 13] Permission denied: 'my_file.txt'
Dies bestätigt, dass Python einen PermissionError
(genauer gesagt Errno 13
) auslöst, wenn wir versuchen, eine Datei zum Schreiben zu öffnen, ohne die erforderlichen Berechtigungen.
Jetzt stellen wir die Schreibberechtigungen wieder her:
chmod u+w my_file.txt
Und führen wir das Skript erneut aus:
python attempt_write.py
Diesmal sollte die Ausgabe wie folgt lauten:
File written successfully.
Und wenn Sie den Inhalt von my_file.txt
überprüfen, werden Sie sehen, dass es jetzt den Text "This is a test." enthält:
cat my_file.txt
This is a test.
Dies zeigt, wie Python Berechtigungsfehler behandelt, wenn versucht wird, eine Datei zum Schreiben zu öffnen. Es ist wichtig, try...except
-Blöcke zu verwenden, um diese Fehler abzufangen und sie in Ihren Programmen gracefully zu behandeln.