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.

Retro

Lugares

Redes

Sistemas

Varios