Ich bekomme OSError: [Errno 13] Berechtigung verweigert: dir name, und os.walk beendet

9

Ich habe ein Skript, um mir über alle Dateien in einem Verzeichnis Bericht zu erstatten, so dass Benutzer sie löschen müssen (es ist ein wirklich schlecht verwalteter Cluster, ohne echten Superuser). Wenn ich das Skript ausführe, bekomme ich: OSError: [Errno 13] Berechtigung verweigert: ' ls:: Berechtigung verweigert Ich kann den Namen nicht schreiben (Firmenrichtlinie) Der Code ist:

%Vor%

Das Skript sendet die E-Mail nicht, sondern stirbt. Danke, dass du einem Newbe geholfen hast.

    
Lior 07.09.2010, 16:42
quelle

1 Antwort

2

Es klingt, als ob Ihr Skript als normaler Benutzer ausgeführt wird und keine Berechtigung zum Lesen eines Verzeichnisses hat.

Es würde helfen, die volle Fehlermeldung zu sehen (selbst wenn Pfadnamen geändert werden), da es uns sagen würde, in welcher Zeile der Fehler aufgetreten ist.

Aber im Grunde ist die Lösung, die Ausnahme in einem Versuch ... außer Block zu fangen :

%Vor%

Beachten Sie besonders im Hinblick auf S. Lott's Kommentar, dass die Dateien oder Verzeichnisse, die OSErrors verursachen, genau die Dateien sind, deren Eigentümer Sie E-Mails senden müssen. Aber um in ihren Verzeichnissen zu lesen, muss Ihr Skript möglicherweise mit Superuser (oder erhöhten Rechten) ausgeführt werden.

    
unutbu 07.09.2010 17:18
quelle

Tags und Links