Cómo leer CSV a una lista en Python

Afia Ghazanfar 10 octubre 2023
  1. Leer CSV en una lista en Python usando csv.reader
  2. Leer CSV en una lista en Python usando csv.reader con otros delimitadores
Cómo leer CSV a una lista en Python

Este artículo introduce cómo leer CSV a una lista en Python.

Supongamos que tenemos un archivo CSV Employees.csv con el siguiente contenido,

Id Name Department email Salary
1 Sam Human Resource sam@gmail.com 65K
2 John Management john@gmail.com 58K
3 Tony IT tony@gmail.com 70K
4 Mike Accounts mike@gmail.com 35K

Si abre este archivo usando algún editor de texto, su contenido debería verse así.

Id,Name,Department,email,Salary
1,Sam,Human Resource,sam@gmail.com,65K
2,John,Management,john@gmail.com,58K
3,Tonny,IT,tonny@gmail.com,70K
4,Mike,Accounts,mike@gmail.com,35K

Ahora importaremos los datos anteriores de este archivo CSV a una lista de Python.

Leer CSV en una lista en Python usando csv.reader

Python tiene un módulo incorporado llamado CSV, que tiene una clase de lectura para leer el contenido de un archivo CSV. El código de ejemplo para leer el CSV a una lista en Python es el siguiente.

from csv import reader

with open("Employees.csv", "r") as csv_file:
    csv_reader = reader(csv_file)
    # Passing the cav_reader object to list() to get a list of lists
    list_of_rows = list(csv_reader)
    print(list_of_rows)

csv_reader = reader(csv_file) pasa el archivo ojbect csv_file a la función csv.reader() y obtiene el objeto reader. Devuelve un iterador, que se utiliza para iterar sobre todas las líneas del archivo CSV.

list_of_rows = list(csv_reader) convierte el objeto csv.reader en una lista de listas, donde cada elemento de la lista significa una fila de CSV, y cada elemento de la lista representa una celda o columna de una fila.

Resultado:

[['Id', 'Name', 'Company', 'email', 'Salary'], 
['1', 'Sam', 'Human Resource', 'sam@gmail.com', '65K'], 
['2', 'John', 'Management', 'john@gmail.com', '58K'], 
['3', 'Tonny', 'IT', 'tonny@gmail.com', '70K'], 
['4', 'Mike', 'Accounts', 'mike@gmail.com', '35K']]

Leer CSV en una lista en Python usando csv.reader con otros delimitadores

La función csv.reader también proporciona una opción para leer los archivos de texto en los que los valores están separados por algún otro carácter en lugar de una coma. Por ejemplo, el delimitador podría ser un tabulador o un espacio en blanco. Para leer tales archivos, necesitamos pasar un parámetro extra delimiter a la función de lectura. Véase el ejemplo a continuación.

Si tenemos un archivo Employees_TSV.csv con el mismo contenido que en Empleados.csv pero separado por tabulador en lugar de una coma, por ejemplo.

from csv import reader

with open("Employees_TSV.csv", "r") as csv_file:
    csv_reader = reader(csv_file, delimiter="\t")
    list_of_rows = list(csv_reader)
    print(list_of_rows)

Leemos los datos de un archivo de valores separados por tabulaciones en el código anterior. delimiter = '\t' especifica que el delimitador en el archivo CSV es la pestaña.

La salida de este código es la misma que la anterior.

Artículo relacionado - Python List

Artículo relacionado - Python CSV