2010-11-28 4 views
2

파이썬 구성 파일에서 등호 오른쪽에 암호를 지정해야하지만 세미콜론은 주석 문자입니다.어떻게 파이썬 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')] 
>>>