14.3. netrc — netrc ファイルの処理

Source code: Lib/netrc.py

netrc クラスは、Unix ftp プログラムや他の FTP クライアントで用いられる netrc ファイル形式を解析し、カプセル化 (encapsulate) します。

class netrc.netrc([file])

A netrc instance or subclass instance encapsulates data from a netrc file. The initialization argument, if present, specifies the file to parse. If no argument is given, the file .netrc in the user’s home directory will be read. Parse errors will raise NetrcParseError with diagnostic information including the file name, line number, and terminating token. If no argument is specified on a POSIX system, the presence of passwords in the .netrc file will raise a NetrcParseError if the file ownership or permissions are insecure (owned by a user other than the user running the process, or accessible for read or write by any other user). This implements security behavior equivalent to that of ftp and other programs that use .netrc.

バージョン 3.3.3 で変更: Added the POSIX permission check.

exception netrc.NetrcParseError

ソースファイルのテキスト中で文法エラーに遭遇した場合に netrc クラスによって送出される例外です。この例外のインスタンスは 3 つのインスタンス変数を持っています: msg はテキストによるエラーの説明で、 filename はソースファイルの名前、そして lineno はエラーが発見された行番号です。

14.3.1. netrc オブジェクト

netrc インスタンスは以下のメソッドを持っています:


host の認証情報として、三要素のタプル (login, account, password) を返します。与えられた host に対するエントリが netrc ファイルにない場合、 ‘default’ エントリに関連付けられたタプルが返されます。 host に対応するエントリがなく、default エントリもない場合、 None を返します。


クラスの持っているデータを netrc ファイルの書式に従った文字列で出力します。(コメントは無視され、エントリが並べ替えられる可能性があります。)

netrc のインスタンスは以下の公開されたインスタンス変数を持っています:


ホスト名を (login, account, password) からなるタプルに対応づけている辞書です。’default’ エントリがある場合、その名前の擬似ホスト名として表現されます。




Passwords are limited to a subset of the ASCII character set. All ASCII punctuation is allowed in passwords, however, note that whitespace and non-printable characters are not allowed in passwords. This is a limitation of the way the .netrc file is parsed and may be removed in the future.