Mac Adresse mit Doppelpunkten

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Nostremato
User
Beiträge: 2
Registriert: Donnerstag 3. Dezember 2009, 16:32

Hallo zusammen,
ich bin leider noch ein Neuling in Sachen python und brauche ein bisschen Hilfe.

Ich muss für ein projekt aus einer MS SQL Datenbank Rechnernamen und Mac auslesen.
Das klappt auch problemlos. Allerdings enthalten die MAC Adressen in der Datenbank keine Doppelpunkte.

Meine Frage ist nun wie ich diese einfügen kann.

Code: Alles auswählen

cur.execute(sqlcmd)
row = cur.fetchone()
while row:
    print "Name=%s MAC=%s" % (row[0], row[1])
    row = cur.fetchone()
cur.close ()
Ausgabe:

Name=Workstation01 MAC=0050518BDFAC
Zuletzt geändert von Nostremato am Montag 7. Dezember 2009, 21:26, insgesamt 1-mal geändert.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Code: Alles auswählen

>>> import re
>>> def cleanmac(mac):
...     parts = re.findall(r'[0-9A-F]{2}', mac.upper())
...     if parts and len(parts) == 6:
...         return ':'.join(parts)
...     else:
...         raise TypeError('This is not a mac address') 
... 
>>> cleanmac('0050518BDFAC')
'00:50:51:8B:DF:AC'
>>> cleanmac('00?50x51.8B:DF-AC')
'00:50:51:8B:DF:AC'
>>> cleanmac('abc')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 6, in cleanmac
TypeError: This is not a mac address
Diese Funktion kommt mit allen möglichen Darstellungsarten zurecht, mit und ohne Trennzeichen.
Bottle: Micro Web Framework + Development Blog
Nostremato
User
Beiträge: 2
Registriert: Donnerstag 3. Dezember 2009, 16:32

top, vielen dank :)
Antworten