On Jul 25, 7:56 pm, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > 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
Great thank you! That was the logic I was looking for. -- http://mail.python.org/mailman/listinfo/python-list