如何在 Python configparser 中的值中添加分号?

发布于 2024-10-04 19:36:59 字数 108 浏览 7 评论 0原文

我需要在Python配置解析器文件中的等号右侧指定密码,但分号是注释字符。

使用 \ 转义不起作用。

我怎样才能传递字符串“foo;”作为 configparser 中的值?

I need to specify a password on the right side of the equals sign in a Python configparser file, but semicolon is the comment character.

Escaping with \ does not work.

How can I pass the string "foo;" as a value in configparser?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

仙女山的月亮 2024-10-11 19:36:59

ConfigParser 似乎有一个分号前面有空格的错误:

>>> import StringIO
>>> import ConfigParser
>> p = ConfigParser.ConfigParser()
>>> s1 = StringIO.StringIO('[foo]\nbla=bar;baz\n')
>>> p.readfp(s1)
>>> p.items('foo')
[('bla', 'bar;baz')]

>>> s2 = StringIO.StringIO('[foo]\nbla=bar ;-) baz\n')
>>> p.readfp(s2)
>>> p.items('foo')
[('bla', 'bar')]

>>> s3 = StringIO.StringIO('[foo]\nbla=bar \;-) baz\n')
>>> p.readfp(s3)
>>> p.items('foo')
[('bla', 'bar \\;-) baz')]
>>>

请注意,最后一个版本仍然不正确,因为转义反斜杠仍然在那里......

ConfigParser seems to have a bug with spaces in front of semicolons:

>>> import StringIO
>>> import ConfigParser
>> p = ConfigParser.ConfigParser()
>>> s1 = StringIO.StringIO('[foo]\nbla=bar;baz\n')
>>> p.readfp(s1)
>>> p.items('foo')
[('bla', 'bar;baz')]

>>> s2 = StringIO.StringIO('[foo]\nbla=bar ;-) baz\n')
>>> p.readfp(s2)
>>> p.items('foo')
[('bla', 'bar')]

>>> s3 = StringIO.StringIO('[foo]\nbla=bar \;-) baz\n')
>>> p.readfp(s3)
>>> p.items('foo')
[('bla', 'bar \\;-) baz')]
>>>

Note that the last version is still incorrect, because the escape backslash is still in there...

稚气少女 2024-10-11 19:36:59

简短的交互会话显示分号的读取没有任何问题。

>>> import StringIO
>>> import ConfigParser
>>> f = StringIO.StringIO("[sec1]\npwd=foo;\n")
>>> p = ConfigParser.ConfigParser()
>>> p.readfp(f)
>>> p.items('sec1')
[('pwd', 'foo;')]
>>> 

A short interactive session shows the semicolon is read without trouble.

>>> import StringIO
>>> import ConfigParser
>>> f = StringIO.StringIO("[sec1]\npwd=foo;\n")
>>> p = ConfigParser.ConfigParser()
>>> p.readfp(f)
>>> p.items('sec1')
[('pwd', 'foo;')]
>>> 
季末如歌 2024-10-11 19:36:59

我的工作正常。
并注意到“以‘#’或‘;’开头的行被忽略并可用于提供评论。

Mine works fine.
And noticed "Lines beginning with '#' or ';' are ignored and may be used to provide comments.
"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文