test.cfg
============
[Foo_Section]

BODY = Line of text 1

   Continuing Line of text 1
============

Executing the code
===============
Python 2.5.1 Stackless 3.1b3 060516 (release25-maint, Mar  6 2009, 14:12:34)
[GCC 4.3.0 20080428 (Red Hat 4.3.0-8)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
from ConfigParser import RawConfigParser
config = RawConfigParser()
config.read('test.cfg')
['test.cfg']
config.get('Foo_Section', 'BODY')
'Line of text 1\nContinuing Line of text 1'
===============

I was expecting 'Line of text 1\n\nContinuing Line of text 1'
                                               ^^^^
with 2 newlines, how can I achieve that with ConfigParser.

Not as best I can tell. From my /usr/lib/python2.5/ConfigParser.py file, around line 441:

  if line[0].isspace() and cursect is not None and optname:
    value = line.strip()
    if value:
      cursect[optname] = "%s\n%s" % (cursect[optname], value)

That "value = line.strip()" is what's throwing away your extra newline. Then the "if value" refuses to add the extra newline because it was a blank line. It looks like this behavior was intentional?

-tkc






--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to