Cómo leer, escribir y analizar CSV en Python

Cómo leer, escribir y analizar CSV en Python

¿Alguna vez ha necesitado intercambiar información entre los programas, excepto usar las variables?? ¿Alguna vez ha pensado o ha sentido la necesidad de tener un archivo de texto para intercambiar datos entre los programas?? ¿Conoce la idea de almacenar datos/información en un archivo externo y luego extraerlo cuando sea necesario?? Sí, podemos almacenar y transferir datos entre los programas utilizando el formato de archivo conocido como CSV.

¿Qué es un archivo CSV??

Un archivo CSV es un tipo de archivo que se utiliza para almacenar datos en un formulario tabular estructurado (fila/columna). Es un archivo de texto sin formato y, como su nombre indica, almacena valores separados por una coma.

En esta publicación, tendremos una discusión detallada sobre la lectura, la escritura y el análisis de un archivo CSV en Python.

Origen del archivo CSV

El concepto de tener un archivo CSV provino de la necesidad de exportar grandes cantidades de datos de un lugar a otro (programas). Por ejemplo, importar grandes datos de hoja de cálculo y exportarlos a alguna base de datos. Del mismo modo, podemos exportar grandes cantidades de datos a los programas.

Diferentes idiomas usan diferentes formatos para almacenar datos, por lo que cuando los programadores necesitan exportar datos de un programa a otro, sintieron la necesidad de tener un tipo de tipo de archivo universal utilizando el cual podemos transferir grandes cantidades de datos; Un tipo de archivo que cualquier programa puede leer y analizar su propio formato.

Comprender la estructura de un archivo CSV

La estructura del archivo CSV se verá algo así:

Columna 1, columna 2, columna 3 valor 1, valor 2, valor 3 ..., ..., .. 

Al igual que tenemos columnas y filas en la base de datos:

O en datos de hoja de cálculo tabular:

Del mismo modo, un archivo CSV es un tipo de archivo de texto simple en el que los datos se almacenan en forma de piezas separadas por una coma:

Cada columna está separada por una coma, y ​​cada fila está en una nueva línea.

Muy bien, después de comprender el concepto central, el origen y la estructura del archivo CSV, aprendamos a leer, escribir y analizar CSV en Python.

Leer un archivo CSV en Python

Para analizar archivos CSV, por suerte, tenemos una biblioteca CSV incorporada proporcionada por Python. La biblioteca CSV es realmente fácil de usar y se puede usar para leer y escribir en un archivo CSV. Comencemos con la lectura de un archivo CSV.

Para leer un archivo CSV, se utilizará el objeto del lector. Comencemos a escribir el código para leer el archivo CSV y comprenderlo en un procedimiento paso a paso:

Leer un archivo CSV con el delimitador predeterminado (coma)

En primer lugar, tenemos que importar el módulo CSV:

Importar CSV 

Después de importar el módulo CSV, ahora podemos usarlo en nuestro programa Python.

A continuación, tenemos que abrir el archivo CSV usando la función Open () en modo de lectura:

Con abiertos ('Estudiantes.csv ',' r ') como csvfile 

Después de leer el archivo CSV, cree un objeto de lector CSV:

csvreader = CSV.Lector (CSVFile) 

Dado que la coma es el delimitador predeterminado, por lo que no tenemos que mencionarlo específicamente. De lo contrario, tenemos que proporcionar el delimitador utilizado por el archivo CSV.

Finalmente, para extraer cada fila, use el bucle for para iterar sobre el csvreader objeto e imprímalos:

Para el estudiante en CSVReader: impresión (estudiante) 

En general, el código final se verá así:

Importar CSV con Open ('Estudiantes.csv ',' r ') como csvfile csvreader = csv.Reader (CSVFile) para el estudiante en CSVReader: Print (Student)
12345Importar CSVWith Open ('Estudiantes.csv ',' r ') como csvfile csvreader = csv.Reader (CSVFile) para el estudiante en CSVReader: Print (Student)

Una vez que se escriba todo el código, ejecute el código y tendrá todo el archivo CSV analizado en la matriz de Python:

Leer un archivo CSV con un delimitador personalizado

Para leer un archivo CSV con un delimitador personalizado, solo tenemos que mencionar el delimitador al leer y crear un objeto de lector CSV.

Por ejemplo, si colocamos un semicolon (;) en el lugar de una coma en los estudiantes.CSV:

Y quiero leer el archivo CSV basado en el punto y el semicolon, entonces el delimitador se mencionaría como:

csvreader = CSV.lector (csvfile, delimiter = ';') 

El código final con el delimitador específico se verá así:

Importar CSV con Open ('Estudiantes.csv ',' r ') como csvfile csvreader = csv.Reader (CSVFile, Delimiter = ';') para el estudiante en CSVReader: Print (Student)
12345Importar CSVWith Open ('Estudiantes.csv ',' r ') como csvfile csvreader = csv.Reader (CSVFile, Delimiter = ';') para el estudiante en CSVReader: Print (Student)

La salida será la misma que tenemos en el ejemplo anterior:

Así es como podemos proporcionar un delimitador personalizado y leer el archivo CSV en Python. Ahora, aprendamos a escribir un archivo CSV en Python.

Escribir un archivo CSV en Python

Para escribir un archivo CSV, se utilizará el objeto de escritor. Puede haber dos formas de escribir un archivo CSV:

  • Escribir líneas una por una usando la función Escritura ()
  • Escriba múltiples líneas usando la función Escritors ()

Comencemos a escribir el código para escribir el archivo CSV y comprender mejor en ambos sentidos:

Cómo escribir un archivo CSV usando la función Escritura () en Python

Al usar esto Writerow () función, solo podemos escribir una línea a la vez en un archivo CSV.

Por ejemplo, escribir tres filas en un nuevo empleado.Archivo CSV, el Python irá así:

Importar CSV con Open ('Empleados.csv ',' w ') como csvfile: escritor = csv.escritor (csvfile) escritor.Writerow (["id", "nombre", "edad"]) escritor.escritor de escritor ([1, "John", 35]) escritor.Writerow ([2, "Harry", 25])
123456Importar csvwith abierto ('empleados.csv ',' w ') como csvfile: escritor = csv.escritor (csvfile) escritor.Writerow (["id", "nombre", "edad"]) escritor.escritor de escritor ([1, "John", 35]) escritor.Writerow ([2, "Harry", 25])

El código anterior creará un archivo con el nombre de los empleados.CSV y agregue tres filas a esos empleados.archivo CSV.

Sin embargo, este método se vuelve ineficiente, cuando tenemos que agregar cientos de filas. En tales casos, tenemos que agregar cada fila uno por uno, que se convierte en un trabajo agitado. Para resolver este problema, Python también proporciona un Writerows () función para escribir numerosas filas en un archivo CSV simultáneamente.

Escribir múltiples filas usando la función Escritors ()

Mediante el uso del Writerows () Función, simplemente podemos proporcionar una matriz de matrices (filas) a la función escritors () y agregará todas las filas al archivo CSV.

Por ejemplo, escribir tres filas en un empleado.Archivo CSV, primero creamos una matriz con el nombre de "empleados.CSV " que contiene filas en forma de elementos de matriz, y luego proporciona el "empleados.CSV " Array a la función de escritor ().

En general, el Python irá así:

import csv emples_csv = [["id", "nombre", "edad"], [1, "John", 35], [2, "Harry", 25]] con abierto ('empleados.csv ',' w ') como csvfile: escritor = csv.escritor (csvfile) escritor.escritor (empleados.CSV)
12345import csVeMployees_csv = [["id", "nombre", "edad"], [1, "John", 35], [2, "Harry", 25]] con abierto ('empleados.csv ',' w ') como csvfile: escritor = csv.escritor (csvfile) escritor.escritor (empleados.CSV)

El código anterior creará un archivo con el nombre de los empleados.CSV y agregue tres filas a esos empleados.archivo csv, lo mismo que lo hizo para el procedimiento anterior.

Al usar este método, puede agregar miles de filas al archivo CSV en ningún momento al proporcionar los datos en forma de matrices.

Conclusión

CSV es un formato de datos que se utiliza para almacenar datos en un formato tabular y transferirlo entre diferentes aplicaciones. Python tiene un módulo incorporado que permite que el código lea, escriba y analice los datos de CSV en el código Python.

En esta publicación, aprendimos a leer y escribir datos en forma de un archivo CSV usando Python.