2010-11-28 5 views
2

python configparserファイルの等号の右側にパスワードを指定する必要がありますが、セミコロンがコメント文字です。どのように私はpython configparserの値にセミコロンを入れますか?

\でエスケープすると機能しません。

文字列「foo;」をどのように渡すことができますか? configparserの値として?

+0

私の 'ConfigParser'は'; 'で値を読み書きします... – khachik

+0

引用符で囲んでみましたか? (全体の価値)? – mpen

答えて

1

短いインタラクティブセッションは、セミコロンが問題なく読み込まれることを示しています。

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

ええ、今はうまくいきます。申し訳ありませんが、私は何か間違ったことをしたに違いありません – dmd

1

マインはうまく動作します。 また、「の先頭に「#」または「;」が付いています。コメントを提供するために使用される可能性があります。 "

1

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

注...

関連する問題