"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" 在使用特定語言環境編碼前會先嘗試 UTF-8 編
   碼。netrc 檔案中的條目就不再需要包含所有 token，缺少的 token 值被預
   設為空字串。現在所有 token 及其值都可以包含任意字元，例如空格和非
   ASCII 字元。如果登入名稱為匿名，就不會觸發安全檢查。

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（串列）的對映字典。
