netrc --- netrc 檔案處理

原始碼:Lib/netrc.py


netrc 類別能夠剖析 (parse) 並封裝 (encapsulate) netrc 檔案格式,以供 Unix ftp 程式和其他 FTP 用戶端使用。

class netrc.netrc([file])

netrc 實例或其子類別實例能夠封裝來自 netrc 檔案的資料。可用初始化引數(如有給定)指定要剖析的檔案,如果未給定引數,則將讀取(由 os.path.expanduser() 指定的)使用者主目錄中的 .netrc 檔案,否則將引發 FileNotFoundError 例外。剖析錯誤會引發 NetrcParseError,其帶有包括檔案名稱、列號和終止 token 的診斷資訊。

如果在 POSIX 系統上未指定引數,且若檔案所有權或權限不安全(擁有者與運行該行程的使用者不同,或者可供任何其他使用者讀取或寫入),存有密碼的 .netrc 檔案將會引發 NetrcParseError。這實作了與 ftp 和其他使用 .netrc 程式等效的安全行為。這種安全檢查在不支援 os.getuid() 的平台上不可用。

在 3.4 版的變更: 新增了 POSIX 權限檢查。

在 3.7 版的變更: 當未傳遞 file 引數時,os.path.expanduser() 可用於查找 .netrc 檔案的位置。

在 3.10 版的變更: netrc try UTF-8 encoding before using locale specific encoding. The entry in the netrc file no longer needs to contain all tokens. The missing tokens' value default to an empty string. All the tokens and their values now can contain arbitrary characters, like whitespace and non-ASCII characters. If the login name is anonymous, it won't trigger the security check.

exception netrc.NetrcParseError

當原始文本中遇到語法錯誤時,netrc 類別會引發例外。此例外的實例提供了三個有趣的屬性:

msg

錯誤的文字解釋。

filename

原始檔案的名稱。

lineno

發現錯誤的列號。

netrc 物件

netrc 實例具有以下方法:

netrc.authenticators(host)

回傳 host 身份驗證器的三元素 tuple (login, account, password)。如果 netrc 檔案不包含給定主機的條目,則回傳與 'default' 條目關聯的 tuple。如果並無匹配主機且預設條目也不可用則回傳 None。

netrc.__repr__()

將類別資料傾印 (dump) 為 netrc 檔案格式的字串。(這會將註解移除,並可能會對條目重新排序。)

netrc 的實例具有公開實例變數:

netrc.hosts

將主機名稱對映到 (login, account, password) tuple 的字典。'default' 條目(如存在)表示為該名稱對應到的偽主機 (pseudo-host)。

netrc.macros

巨集 (macro) 名稱與字串 list(串列)的對映字典。