On Jul 25, 8:46 am, [EMAIL PROTECTED] wrote: > Hello, > > I have a situation where I have a file that contains text similar to: > > myValue1 = contents of value1 > myValue2 = contents of value2 but > with a new line here > myValue3 = contents of value3 > > My first approach was to open the file, use readlines to split the > lines on the "=" delimiter into a key/value pair (to be stored in a > dict). > > After processing a couple files I noticed its possible that a newline > can be present in the value as shown in myValue2. > > In this case its not an option to say remove the newlines if its a > "multi line" value as the value data needs to stay intact. > > I'm a bit confused as how to go about getting this to work. > > Any suggestions on an approach would be greatly appreciated!
Check the length of the list returned from split; this allows your to append to the previously extracted value if need be. import StringIO import pprint buf = """\ myValue1 = contents of value1 myValue2 = contents of value2 but with a new line here myValue3 = contents of value3 """ mockfile = StringIO.StringIO(buf) record=dict() for line in mockfile: kvpair = line.split('=', 2) if len(kvpair) == 2: key, value = kvpair record[key] = value else: record[key] += line pprint.pprint(record) # lstrip() to remove newlines if needed ... -- Hope this helps, Steven -- http://mail.python.org/mailman/listinfo/python-list