netrc — Verarbeitung von netrc-Dateien¶
Quellcode: Lib/netrc.py
Die Klasse netrc parst und kapselt das netrc-Dateiformat, das vom Unix-Programm ftp und anderen FTP-Clients verwendet wird.
- class netrc.netrc([file])¶
Eine Instanz von
netrcoder einer Unterklasse kapselt die Daten aus einer netrc-Datei. Das Initialisierungsargument gibt, falls vorhanden, die zu parsende Datei an. Ohne Argument wird die Datei.netrcim Heimatverzeichnis des Benutzers gelesen – ermittelt überos.path.expanduser(). Andernfalls wird eine AusnahmeFileNotFoundErrorausgelöst. Bei Parse-Fehlern wirdNetrcParseErrormit Diagnoseangaben ausgelöst, darunter Dateiname, Zeilennummer und abschließendes Token.Wird auf einem POSIX-System kein Argument angegeben, löst das Vorhandensein von Passwörtern in der Datei
.netrceinenNetrcParseErroraus, wenn Eigentümer oder Zugriffsrechte der Datei unsicher sind (Eigentum eines anderen Benutzers als desjenigen, der den Prozess ausführt, oder Lese- bzw. Schreibzugriff für andere Benutzer). Damit wird ein Sicherheitsverhalten umgesetzt, das dem von ftp und anderen Programmen entspricht, die.netrcverwenden. Auf Plattformen, dieos.getuid()nicht unterstützen, stehen solche Sicherheitsprüfungen nicht zur Verfügung.Geändert in Version 3.4: Die POSIX-Rechteprüfung wurde hinzugefügt.
Geändert in Version 3.7:
os.path.expanduser()wird verwendet, um den Speicherort der Datei.netrczu ermitteln, wenn file nicht als Argument übergeben wird.Geändert in Version 3.10:
netrcversucht es zuerst mit UTF-8, bevor die Kodierung der aktuellen Locale verwendet wird. Ein Eintrag in der netrc-Datei muss nicht mehr alle Tokens enthalten; fehlende Tokens erhalten standardmäßig eine leere Zeichenkette als Wert. Alle Tokens und ihre Werte dürfen nun beliebige Zeichen enthalten, etwa Whitespace und Zeichen außerhalb von ASCII. Lautet der Anmeldename anonymous, wird die Sicherheitsprüfung nicht ausgelöst.
- exception netrc.NetrcParseError¶
Ausnahme, die von der Klasse
netrcausgelöst wird, wenn im Quelltext Syntaxfehler auftreten. Instanzen dieser Ausnahme bieten drei interessante Attribute:- msg¶
Textuelle Erläuterung des Fehlers.
- filename¶
Der Name der Quelldatei.
- lineno¶
Die Zeilennummer, in der der Fehler gefunden wurde.
netrc-Objekte¶
Eine Instanz von netrc hat die folgenden Methoden:
- netrc.authenticators(host)¶
Gibt ein 3-Tupel
(login, account, password)mit den Authentifizierungsdaten für host zurück. Enthält die netrc-Datei keinen Eintrag für den angegebenen Host, wird das Tupel des Eintrags „default“ zurückgegeben. Ist weder ein passender Host noch ein Standardeintrag vorhanden, wirdNonezurückgegeben.
- netrc.__repr__()¶
Gibt die Daten der Klasse als Zeichenkette im Format einer netrc-Datei aus. (Dabei gehen Kommentare verloren, und die Reihenfolge der Einträge kann sich ändern.)
Instanzen von netrc haben öffentliche Instanzvariablen:
- netrc.hosts¶
Dictionary, das Hostnamen auf Tupel der Form
(login, account, password)abbildet. Der Eintrag „default“ wird, falls vorhanden, als Pseudo-Host unter diesem Namen dargestellt.
- netrc.macros¶
Dictionary, das Makronamen auf Listen von Zeichenketten abbildet.