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

将宏名称映射到字符串列表的字典。