I came up with this. Is there a better (more pythonic) way to do it?

import string
def mac_to_norm(mac):
        def bad_char(char):
                if char not in string.hexdigits:
                        return False
                return True
        mac = filter(bad_char,mac)
        if len(mac) is not 12: return None
        new_mac = ''
        c = 0
        while len(new_mac) < 16:
                new_mac += mac[c:c+2] + ':'
                c=c+2
        return new_mac[:-1].upper()
print mac_to_norm('0012.ab23.b2cd')
#shows: 00:12:AB:23:B2:CD

The part I think is bad is the while loop part. Could it be better?

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to