Python: Módulo: CSV
Leer un fichero CSV es bastante sencillo.
fichero.csv switch;interface;vlan sw1;Gi0/1;426 sw2;Gi0/21;849 sw3;G0/9;12
lee_csv.py import csv with open('fichero.csv') as csv_file: # si guardas desde excel el delimitador es ';' csv_reader = csv.reader(csv_file, delimiter=';') contador = 0 for fila in csv_reader: if contador == 0: print('La columnas son: {}'.format(", ".join(fila))) contador += 1 else: print('El switch {} tiene la vlans {} en el interface {}'.format(fila[0], fila[2], fila[1])) contador += 1 print('Se han leído {} lineas.'.format(contador))
La salida obtenida es:
$ python3 lee_csv.py La columnas son: switch, interface, vlan El switch sw1 tiene la vlans 426 en el interface Gi0/1 El switch sw2 tiene la vlans 849 en el interface Gi0/21 El switch sw3 tiene la vlans 12 en el interface G0/9 Se han leído 4 lineas.
El ejemplo de arriba debemos saber que es cada columna y contar desde cero (0), pero podemos usar un diccionario que facilita las cosas.
fichero.csv switch;interface;vlan sw1;Gi0/1;426 sw2;Gi0/21;849 sw3;G0/9;12
lee_csv.py import csv with open('fichero.csv') as csv_file: # si guardas desde excel el delimitador es ';' csv_reader = csv.DictReader(csv_file, delimiter=';') # omitimos la cabecera contador = 1 # fieldnames tiene los nombres de la cabecera print('La columnas son: {}'.format(", ".join(csv_reader.fieldnames))) for fila in csv_reader: print('El switch {} tiene la vlans {} en el interface {}'.format(fila['switch'], fila['vlan'], fila['interface'])) contador += 1 print('Se han leído {} lineas.'.format(contador))
La salida obtenida es:
$ python3 lee_csv.py La columnas son: switch, interface, vlan El switch sw1 tiene la vlans 426 en el interface Gi0/1 El switch sw2 tiene la vlans 849 en el interface Gi0/21 El switch sw3 tiene la vlans 12 en el interface G0/9 Se han leído 4 lineas.