(beginner question) ConfigParser nuances
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? Thanks for the help. -- http://mail.python.org/mailman/listinfo/python-list
Re: (beginner question) ConfigParser nuances
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
Re: (beginner question) ConfigParser nuances
On May 2, 3:25 pm, Chris Rebert c...@rebertia.com wrote: On Mon, May 2, 2011 at 3:04 PM, Unknown Moss unknownm...@gmail.com wrote: Hi -Beginnerquestionhere. 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 Ok, thanks Chris. Maybe I'm getting too lazy in my old age. :-) -- http://mail.python.org/mailman/listinfo/python-list