13.4. netrc — netrc 文件处理

版本 1.5.2 中的新Function。

源代码: Lib/netrc.py


netrc类解析并封装 Unix ftp 程序和其他 FTPClient 端使用的 netrc 文件格式。

  • 类别 netrc. netrc([文件])
    • netrc实例或子类实例封装了 netrc 文件中的数据。初始化参数(如果存在)指定要分析的文件。如果未提供任何参数,则将读取用户主目录中的文件.netrc。解析错误将引发NetrcParseError的诊断信息,包括文件名,行号和终止令牌。如果在 POSIX 系统上未指定任何参数,则如果文件所有权或权限不安全(由运行进程的用户以外的用户拥有,或可由以下用户访问,则.netrc文件中密码的存在将引发NetrcParseError):任何其他用户)。这实现了与 ftp 和其他使用.netrc的程序相同的安全行为。

在版本 2.7.6 中进行了更改:添加了 POSIX 权限检查。

  • exception netrc. NetrcParseError
    • 在源文本中遇到语法错误时,netrc类引发异常。此异常的实例提供了三个有趣的属性:msg是错误的文本说明,filename是源文件的名称,lineno提供了发现错误的行号。

13.4.1. netrc 对象

netrc实例具有以下方法:

  • netrc. authenticators(* host *)

    • 返回 3 个 Tuples(login, account, password)的身份验证者用于* host *。如果 netrc 文件不包含给定主机的条目,则返回与“默认”条目关联的 Tuples。如果没有匹配的主机也没有默认条目,则返回None
  • netrc. __repr__ ( )

    • 以 netrc 文件格式将类数据作为字符串转储。 (这会丢弃 Comments,并可能重新排列条目.)

netrc的实例具有公共实例变量:

  • netrc. hosts

    • 将主机名 Map 到(login, account, password)Tuples 的字典。 “默认”条目(如果有)pass该名称表示为伪主机。
  • netrc. macros

    • 将宏名称 Map 到字符串列表的字典。

Note

密码仅限于 ASCII 字符集的子集。此模块在 2.3 之前的版本非常受限制。从 2.3 开始,密码中允许所有 ASCII 标点符号。但是,请注意,密码中不允许使用空格和不可打印的字符。这是对.netrc 文件进行解析的方式的限制,以后可能会删除它。