Newbie needs help with regex strings
Dennis Benzinger
Dennis.Benzinger at gmx.net
Wed Dec 14 12:52:50 EST 2005
Catalina Scott A Contr AFCA/EVEO schrieb:
> I have a file with lines in the following format.
>
> pie=apple,quantity=1,cooked=yes,ingredients='sugar and cinnamon'
> Pie=peach,quantity=2,ingredients='peaches,powdered sugar'
> Pie=cherry,quantity=3,cooked=no,price=5,ingredients='cherries and sugar'
>
> I would like to pull out some of the values and write them to a csv
> file.
>
> For line in filea
> pie = regex
> quantity = regex
> cooked = regex
> ingredients = regex
> fileb.write (quantity,pie,cooked,ingredients)
>
> How can I retreive the values and assign them to a name?
>
> Thank you
> Scott
Try this:
import re
import StringIO
filea_string = """pie=apple,quantity=1,cooked=yes,ingredients='sugar and
cinnamon'
pie=peach,quantity=2,ingredients='peaches,powdered sugar'
pie=cherry,quantity=3,cooked=no,price=5,ingredients='cherries and sugar'
"""
FIELDS = ("pie", "quantity", "cooked", "ingredients", "price")
field_regexes = {}
for field in FIELDS:
field_regexes[field] = re.compile("%s=([^,\n]*)" % field)
for line in StringIO.StringIO(filea_string):
field_values = {}
for field in FIELDS:
match_object = field_regexes[field].search(line)
if match_object is not None:
field_values[field] = match_object.group(1)
print field_values
#fileb.write (quantity,pie,cooked,ingredients)
Bye,
Dennis
More information about the Python-list
mailing list