[Python-de] Re: Komma-separierte Liste von E-Mailadressen parsen

Christopher Arndt chris.arndt at web.de
Son Sep 4 12:49:08 CEST 2005


Harald Armin Massa schrieb:
> Hallo Christopher,
> 
> genau für diese Aufgabe gibt es das csv-modul in der Standard-Library.

Nope, das hilft leider nichts. Hatte ich auch zuerst dran gedacht und es dann
aber für Overkill gehalten. Jetzt habe ich es mal getestet:

---> parseaddrlist.py <---
import csv
import cStringIO
import email.Utils

def parseaddrlist(s):
    f = cStringIO.StringIO(s)
    reader = csv.reader(f, skipinitialspace=True)
    l = []
    for addr in reader.next():
        if addr.strip():
            l.append(email.Utils.parseaddr(addr))
    return l

if __name__ == '__main__':
    al = '"Hacker, J. Random" <random at hacker.net>, Joe Doe <joe at foo.com>, ' + \
      'luser at dau.org'
    print parseaddrlist(al)
---> end <---

$ python parseaddrlist.py
[('', 'Hacker'), ('Joe Doe', 'joe at foo.com'), ('', 'luser at dau.org')]

Leider nicht ganz das, was ich wollte. Da csv die Quotes um "Hacker, J. Random"
nicht erhält, scheitert parseaddr() :-(

Chris