Skip to main content

14.3. netrc — netrc文件处理

源代码: Lib/netrc.py


netrc 类解析和封装了Unix ftp 程序和其他FTP客户端使用的netrc文件格式。

class netrc.netrc([file])

netrc 实例或子类实例封装来自netrc文件的数据。初始化参数(如果存在)指定要解析的文件。如果没有给出参数,将读取用户主目录中的文件 .netrc。解析错误将引发 NetrcParseError 和诊断信息,包括文件名,行号和终止令牌。如果在POSIX系统上没有指定参数,则 .netrc 文件中存在密码将产生 NetrcParseError,如果文件所有权或权限不安全(由运行该进程的用户以外的用户拥有,或者由读取或写入任何其他用户)。这实现了等同于ftp和其他使用 .netrc 的程序的安全行为。

在 3.4 版更改: 添加了POSIX权限检查。

exception netrc.NetrcParseError

当源文本中遇到语法错误时,netrc 类引发的异常。此异常的实例提供了三个有趣的属性:msg 是错误的文本解释,filename 是源文件的名称,lineno 给出找到错误的行号。

14.3.1. netrc对象

netrc 实例具有以下方法:

netrc.authenticators(host)

返回 host 的认证器的3元组 (login, account, password)。如果netrc文件不包含给定主机的条目,则返回与“default”条目关联的元组。如果匹配主机或缺省条目都不可用,请返回 None

netrc.__repr__()

将类数据转储为netrc文件格式的字符串。 (这会丢弃注释,并可能重新排序条目。)

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

netrc.hosts

将主机名映射到 (login, account, password) 元组的字典。 “默认”条目(如果有)通过该名称表示为伪主机。

netrc.macros

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

注解

密码限于ASCII字符集的一个子集。在密码中允许使用所有ASCII标点符号,但请注意,密码中不允许使用空格和不可打印的字符。这是对.netrc文件进行解析的方式的限制,并且可能会在将来删除。