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 的程式等效的安全行為。

在 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

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