Erstellen Sie neue Verzeichnisse mit Python unter Linux

Erstellen Sie neue Verzeichnisse mit Python unter Linux

Ich führe ein Python-Skript auf einer Neuinstallation von Ubuntu 20.04.2 aus. Das Skript prüft, ob ein Verzeichnis vorhanden ist, und erstellt es, wenn nicht. Der Code lautet:

os.makedirs(f'..{os.sep}logs{os.sep}')

Ich erhalte die folgende Fehlermeldung:

PermissionError: [Errno 13] Permission denied: '../logs/'

In der Eingabeaufforderung würde ich einfach „sudo“ hinzufügen, aber mein Python-Skript muss in der Lage sein, diese Verzeichnisse zu erstellen. Meine Frage lautet also: Wie kann ich Python erlauben, neue Verzeichnisse zu erstellen?

Antwort1

Die einfache Antwort lautet: Das müssen Sie nicht. Ich bin mir zwar sicher, dass Ihr Skript erweiterte Berechtigungen anfordern und erhalten kann, aber normalerweise geht man davon aus, dass derjenige, der das Skript ausführt, Zugriff auf die Änderungen hat, die das Skript vornehmen muss. Wenn der Benutzer keine Berechtigung hat, darf er das Skript schließlich gar nicht ausführen.

Schreiben Sie also einfach Ihr Skript und überlassen Sie es dem Benutzer, sicherzustellen, dass er das Recht hat, das zu tun, was er tun möchte. Stattdessen sollten Sie Ihr Skript ändern, um den Fehler abzufangen und eine informativere Fehlermeldung auszugeben, damit der Benutzer weiß, auf welches Verzeichnis er zugreifen muss und welche Art von Zugriff er benötigt. ../logHolen Sie sich also statt den vollständigen Pfad und prüfen Sie statt „Zugriff verweigert“, welche Berechtigungen erforderlich sind, und testen Sie diese, bevor Sie den Vorgang ausführen. Auf diese Weise können Sie Fehler elegant beheben und dem Benutzer mitteilen, was er benötigt.

verwandte Informationen