netrc --- netrc 檔案處理

原始碼: Lib/netrc.py


netrc 類可以解析和封裝 Unix ftp 程式和其他 FTP 客戶端使用的 netrc 檔案格式。

class netrc.netrc([file])

netrc 例項或其子類的例項封裝了來自 netrc 檔案的資料。 如果存在初始化引數,則它指定要解析的檔案。 如果沒有給出引數,將讀取使用者主目錄中的 .netrc 檔案 --- 具體路徑由 os.path.expanduser() 確定。 否則,將引發 FileNotFoundError 異常。 解析錯誤將引發 NetrcParseError 並附帶診斷資訊,包括檔名、行號和終結憑證。

如果在 POSIX 系統上未指定任何引數,並且檔案所有權或許可權不安全(所有者不是執行該程序的使用者,或者任何其他使用者可讀或可寫),那麼 .netrc 檔案中存在的密碼將引發 NetrcParseError。 這實現了與 ftp 和其他使用 .netrc 的程式等效的安全行為。 此類安全檢查在不支援 os.getuid() 的平臺上不可用。

在 3.4 版本發生變更: 添加了 POSIX 許可權檢查。

在 3.7 版本發生變更: file 未作為引數傳入時,使用 os.path.expanduser() 來查詢 .netrc 檔案的位置。

在 3.10 版本發生變更: netrc 會在嘗試使用區域特定編碼之前嘗試 UTF-8 編碼。 netrc 檔案中的條目不再需要包含所有憑證。 缺失憑證的值預設為空字串。 所有的憑證及其值現在都可以包含任意字元,如空白字元和非 ASCII 字元。 如果登入名為 anonymous,則不會觸發安全檢查。

exception netrc.NetrcParseError

當在源文字中遇到語法錯誤時,由 netrc 類引發的異常。 此異常的例項提供了三個有用的屬性

msg

錯誤的文字解釋。

filename

原始檔的名稱。

lineno

發現錯誤的行號。

netrc 物件

netrc 例項具有以下方法

netrc.authenticators(host)

返回 host 的一個 3 元組 (login, account, password) 認證資訊。 如果 netrc 檔案不包含給定主機的條目,則返回與 'default' 條目關聯的元組。 如果匹配的主機和預設條目都不可用,則返回 None

netrc.__repr__()

以 netrc 檔案格式的字串形式轉儲類資料。(這將丟棄註釋並可能重新排序條目。)

netrc 的例項具有公共例項變數

netrc.hosts

將主機名對映到 (login, account, password) 元組的字典。 'default' 條目(如果有)由該名稱的偽主機表示。

netrc.macros

將宏名稱對映到字串列表的字典。