我有以下内容:
import netrc
machine = 'ftp.example.com'
auth = netrc.netrc().authenticators(machine)
我的.netrc
文件中有以下行:
machine "### comment"
我收到以下错误:
netrc.NetrcParseError:错误的关注者令牌“评论”'
我可以删除评论,但我需要在其他无法编辑.netrc
文件的帐户中使用此功能,那么该怎么办?
答案 0 :(得分:1)
你的行不需要
machine ftp.example.com login user password pw
如果你开始使用'机器'你至少需要一个机器名,然后才能注释掉该行的其余部分,否则netrc无法解析该行。
答案 1 :(得分:0)
我相信它在解析行时不会将引号与其他非空白字符区别开来。所以这个:
machine "### comment"
变成令牌machine
,"###
和comment"
。在那之后,它找不到更多的令牌,并且会掉下来。
不幸的是,由于那里有很多netrc解析器,并且它们可能都对边缘情况有不同的处理,除非编写自己的解析器,否则您甚至无法真正解决此问题,除非您可以让自己喜欢的工具使用该解析器(卷发,点子等)。
除了注释之外,Python netrc
模块显然会将# machine ...
(带空格)识别为#machine ...
(无空格)作为注释行。后者会导致诸如netrc.NetrcParseError: bad toplevel token '...'
之类的各种错误,而pip
之类的工具似乎对您隐藏了,并假装文件中没有条目。