2024-04-19 13:09:29 发布
网友
我有以下内容:
import netrc machine = 'ftp.example.com' auth = netrc.netrc().authenticators(machine)
我的.netrc文件中有以下一行:
.netrc
我得到以下错误:
netrc.NetrcParseError: bad follower token 'comment"'
我可以删除注释,但是我需要在其他不能编辑.netrc文件的帐户上使用它,那么在这里该怎么办?在
你的台词不需要
machine ftp.example.com login user password pw
如果以“machine”开头的行,则在注释掉该行的其余部分之前,至少需要一个机器名,否则netrc无法解析该行。在
我相信这是在解析行时不把引号与其他非空白字符区别对待。所以这个:
machine "### comment"
获取转换为标记machine、"###和comment"。在那之后,它再也找不到代币了,它就吐出来了。在
machine
"###
comment"
不幸的是,由于有很多netrc解析器,而且它们可能都有不同的边缘情况处理方式,所以您甚至不能通过编写自己的解析器来解决这个问题,除非您可以让您喜欢的工具(curl、pip等)使用该解析器。在
除了注释之外,显然Python netrc模块将识别# machine ...(带空格),而不是{}(没有空格)作为注释行。后者会导致各种错误,如netrc.NetrcParseError: bad toplevel token '...',而{}等工具似乎对您隐藏了这些错误,假装文件中没有条目。在
netrc
# machine ...
netrc.NetrcParseError: bad toplevel token '...'
你的台词不需要
如果以“machine”开头的行,则在注释掉该行的其余部分之前,至少需要一个机器名,否则netrc无法解析该行。在
我相信这是在解析行时不把引号与其他非空白字符区别对待。所以这个:
获取转换为标记
machine
、"###
和comment"
。在那之后,它再也找不到代币了,它就吐出来了。在不幸的是,由于有很多netrc解析器,而且它们可能都有不同的边缘情况处理方式,所以您甚至不能通过编写自己的解析器来解决这个问题,除非您可以让您喜欢的工具(curl、pip等)使用该解析器。在
除了注释之外,显然Python}(没有空格)作为注释行。后者会导致各种错误,如}等工具似乎对您隐藏了这些错误,假装文件中没有条目。在
netrc
模块将识别# machine ...
(带空格),而不是{netrc.NetrcParseError: bad toplevel token '...'
,而{相关问题 更多 >
编程相关推荐