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.