Lectura de filas de un archivo CSV en Python

CSV significa valores separados por comas. Este formato de archivo es un archivo de texto delimitado que utiliza una coma como delimitador para separar el texto presente en él. O, en otras palabras, los archivos CSV se utilizan para almacenar datos en forma tabular. Según el nombre sugerido, este archivo contiene los datos separados por una coma y cada línea de un archivo se considera un registro. Podemos crear el archivo CSV desde el bloc de notas o usando Excel. 

Ejemplo:

Geeks,for,geeks
one,of,the,
top,learning,platform

Podemos crear un archivo CSV de las siguientes formas:

1. Usando el Bloc de notas: podemos crear un archivo CSV usando el Bloc de notas. En el Bloc de notas, abra un nuevo archivo en el que separe los valores por coma y guarde el archivo con la extensión .csv.

2. Usando Excel: También podemos crear un archivo CSV usando Excel. En Excel, abra un nuevo archivo en el que especifique cada valor en una celda diferente y guárdelo con el tipo de archivo CSV.

Para leer datos por filas de un archivo CSV en Python, podemos usar el lector y DictReader que están presentes en el módulo CSV que nos permite obtener datos por filas.

usando el lector

Usando el lector podemos iterar entre filas de un archivo CSV como una lista de valores. Itera sobre todas las filas en un archivo CSV y obtiene datos en cada fila como una lista. El método reader() está presente en la biblioteca CSV. Entonces, para usar este método de lectura, primero debemos importar la biblioteca CSV. El objeto del lector acepta un solo parámetro llamado fileObject (una variable que contiene el archivo CSV). 

Sintaxis:

csv.reader(objetoarchivo)

Pasos para leer el archivo CSV:

Paso 1: para leer filas en Python, primero, necesitamos cargar el archivo CSV en un objeto. Entonces, para cargar el archivo csv en un objeto, use el método open().

with open('filename') as fileObject

Mientras carga el archivo especificando la ruta junto con el nombre del archivo, si tiene algún error Unicode, agregue r antes de la ruta del nombre del archivo

with open(r'path/filename') as fileObject 

Paso 2: Cree un objeto de lector pasando el objeto de archivo creado anteriormente a la función de lector.

reader_obj = csv.reader(file_obj)

Paso 3: use for loop en el objeto del lector para obtener cada fila.

Ejemplo:

Considere un archivo CSV llamado «samplecsv.csv». Este archivo contiene los siguientes datos:

Id,Name,Rating
1,Akhil,4
2,Babu,3
3,Nikhil,5

Python3

# Python program to read CSV file line by line
# import necessary packages
import csv
  
# Open file 
with open('samplecsv.csv') as file_obj:
      
    # Create reader object by passing the file 
    # object to reader method
    reader_obj = csv.reader(file_obj)
      
    # Iterate over each row in the csv 
    # file using reader object
    for row in reader_obj:
        print(row)

Producción:

['Id', 'Name', 'Rating']
['1', 'Akhil', '4']
['2', 'Babu', '3']
['3', 'Nikhil', '5']

Leer archivo CSV sin encabezado

Todo está bien con el ejemplo anterior, pero si no queremos que se obtengan los nombres de las columnas o podemos decir que no queremos leer el encabezado del archivo, entonces usamos el método next() en el objeto del archivo antes de crear el objeto lector para que salte los encabezados.

Python3

# Python program to read CSV file without header
  
# Import necessary packages
import csv
  
# Open file
with open('samplecsv.csv') as file_obj:
      
    # Skips the heading
    # Using next() method
    heading = next(file_obj)
      
    # Create reader object by passing the file 
    # object to reader method
    reader_obj = csv.reader(file_obj)
      
    # Iterate over each row in the csv file 
    # using reader object
    for row in reader_obj:
        print(row)

Producción:

['1', 'Akhil', '4']
['2', 'Babu', '3']
['3', 'Nikhil', '5']

Explicación: el código anterior es casi el mismo que el código del ejemplo anterior, pero con un ligero cambio, usamos la siguiente función aquí que nos ayuda a omitir los nombres de las columnas al acceder a los datos de un archivo CSV, es decir, la primera fila. Si se requieren nombres de columna, accedemos a ellos desde el objeto de encabezado, es decir, devolvemos el resultado del siguiente método.

Uso de DictReader

Cuando usamos un método reader() podemos iterar sobre un archivo CSV como una lista pero usando el objeto de clase DictReader podemos iterar sobre un archivo CSV fila por fila como un diccionario. Este método DictReader está presente en la biblioteca csv. Entonces, para usarlo primero, debemos importar la biblioteca csv. DictReader() acepta un solo parámetro llamado fileObject (una variable que contiene el archivo csv). 

Sintaxis

csv.DictReader(objetoarchivo)

Pasos para leer el archivo CSV:

Paso 1: Cargue el archivo CSV utilizando el método abierto en un objeto de archivo.

with open('filename') as fileObject

Paso 2: Cree un objeto lector con la ayuda del método DictReader usando fileobject.

reader_obj = csv.DictReader(file_obj)

Este objeto lector también se conoce como un iterador que se puede usar para obtener datos por filas.

Paso 3: use for loop en el objeto del lector para obtener cada fila.

Ejemplo:

Python3

# Python3 program to read CSV file using DictReader
  
# Import necessary packages
import csv
  
# Open file
with open('samplecsv.csv') as file_obj:
      
    # Create reader object by passing the file
    # object to DictReader method
    reader_obj = csv.DictReader(file_obj)
      
    # Iterate over each row in the csv file
    # using reader object
    for row in reader_obj:
        print(row)

Producción:

OrderedDict([('Id', '1'), ('Name', 'Akhil'), ('Rating', '4')])
OrderedDict([('Id', '2'), ('Name', 'Babu'), ('Rating', '3')])
OrderedDict([('Id', '3'), ('Name', 'Nikhil'), ('Rating', '5')])

Explicación: en el código, primero cargamos el archivo CSV llamado samplecsv.csv y luego creamos un objeto_lector que se puede iterar para obtener cada fila. El resultado devuelto tiene la forma de un par clave-valor que lo indica como un diccionario. Entonces, al usar DictReader, leemos los datos fila por fila como un diccionario.

Publicación traducida automáticamente

Artículo escrito por akhilvasabhaktula03 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *