On Mon, May 2, 2011 at 3:04 PM, Unknown Moss <unknownm...@gmail.com> wrote: > Hi - Beginner question here. I'm working with ConfigParser. I'd like > to take a multiline variable and convert it directly to an array. > Seems like a common problem, but I don't see how I can do it without > doing a little parsing in my own code. Here's what I'm doing ... > >>>> import ConfigParser >>>> import io >>>> sample = """ > ... [Example] > ... fruit = apple > ... orange > ... pear > ... """ >>>> config = ConfigParser.RawConfigParser() >>>> config.readfp(io.BytesIO(sample)) >>>> config.get("Example", "fruit") > 'apple\norange\npear' >>>> temp = config.get("Example", "fruit") >>>> temp.split() > ['apple', 'orange', 'pear'] > > I'm thinking there's a way to avoid this intermediate temp.split() > step. Is there not a way to move a multiline value straight into an > array using ConfigParser?
Nope, there is not. I think some might instead use several numbered options to similar effect: # config file [Example] fruit1: apple fruit2: orange fruit3: pear # Python from itertools import count fruits = [] names = ("fruit" + str(i) for i in count(1)) for name in names: if not config.has_option("Example", name): break fruits.append(config.get("Example", name)) Cheers, Chris -- http://rebertia.com -- http://mail.python.org/mailman/listinfo/python-list