2

Python configparser ファイルの等号の右側にパスワードを指定する必要がありますが、セミコロンはコメント文字です。

\ でのエスケープは機能しません。

文字列「foo;」を渡すにはどうすればよいですか configparser の値として?

4

3 に答える 3

3

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')]
>>>

エスケープ バックスラッシュがまだそこにあるため、最後のバージョンはまだ正しくないことに注意してください...

于 2012-02-06T13:36:16.373 に答える
2

短い対話型セッションでは、セミコロンが問題なく読み取られることが示されています。

>>> import StringIO
>>> import ConfigParser
>>> f = StringIO.StringIO("[sec1]\npwd=foo;\n")
>>> p = ConfigParser.ConfigParser()
>>> p.readfp(f)
>>> p.items('sec1')
[('pwd', 'foo;')]
>>> 
于 2010-11-28T18:22:04.617 に答える
1

私のはうまくいきます。そして、「「#」または「;」で始まる行に気付きました は無視され、コメントを提供するために使用される場合があります。」

于 2010-11-28T17:58:08.440 に答える