paseline(my favorite simple script): does something similar exist?

Pierre Quentel quentel.pierre at wanadoo.fr
Thu Oct 12 21:25:21 CEST 2006


Hi Rick,

Nice little script indeed !

You probably mean
>         trans = xlat.get(f,None)
instead of
>         trans = xlat.get(f,'None')

in the case where an invalid format character is supplied. The string
'None' evaluates to True, so that trans(words[i]) raises an exception

A variant, with a list comprehension instead of the for loop :

def parseline(line,format):
    xlat = {'x':None,'s':str,'f':float,'d':int,'i':int}
    result = []
    words = line.split()
    result = [ xlat[f](w) for f,w in zip(format,words)
        if xlat.get(f,None) ]
    if not result: return None
    if len(result) == 1: return result[0]
    return result

Regards,
Pierre




More information about the Python-list mailing list