Introducción
¿Alguna vez ha necesitado intercambiar información entre programas que no sean variables? ¿Alguna vez ha pensado o sentido la necesidad de tener un archivo de texto para intercambiar datos entre programas? ¿Tiene la idea de almacenar datos / información en un archivo externo y luego extraerlos cuando sea necesario? Sí, podemos almacenar y transferir datos entre programas usando 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 una forma tabular estructurada (fila / columna). Es un archivo de texto plano y, como su nombre lo indica, almacena los valores separados por una coma.
En este artículo, tendremos una discusión detallada sobre cómo leer, escribir y analizar un archivo CSV en Python.
Fuente del archivo CSV
El concepto de tener un archivo CSV nació de la necesidad de exportar grandes cantidades de datos de un lugar a otro (programas). Por ejemplo, importando datos de una hoja de cálculo de gran tamaño y exportándolos a una base de datos. Asimismo, podemos exportar grandes cantidades de datos a programas.
Los diferentes lenguajes usan diferentes formatos para almacenar datos, por lo que cuando los programadores necesitan exportar datos de un programa a otro, sienten la necesidad de tener algún tipo de archivo universal con el cual transferir grandes cantidades de datos; Un tipo de archivo que cualquier programa puede leer y analizar en su propio formato.
Comprender la estructura de un archivo CSV
La estructura del archivo CSV se verá así:
Column 1, Column 2, Column 3
Value 1, Value 2, Value 3
..., ..., ...
Al igual que tenemos columnas y filas en la base de datos:
O en los datos de la hoja de cálculo tabular:
Asimismo, un archivo CSV es un tipo simple de archivo de texto donde los datos se almacenan en forma de partes separadas por una coma:
Cada columna está separada por una coma y cada fila está en la nueva fila.
Bueno, después de comprender el concepto básico, el origen y la estructura del archivo CSV, aprendamos a leer, escribir y analizar CSV en Python.
Leer un archivo CSV en Python
Afortunadamente, tenemos una biblioteca CSV incorporada proporcionada por Python para analizar archivos CSV. La biblioteca CSV es realmente fácil de usar y se puede utilizar tanto para leer como para escribir en un archivo CSV. Comencemos leyendo un archivo CSV.
Para leer un archivo CSV, se utilizará el objeto lector. Comencemos a escribir el código para leer el archivo CSV y entenderlo en un procedimiento paso a paso:
Leer un archivo CSV con el delimitador predeterminado (coma)
En primer lugar, necesitamos importar el módulo CSV:
import csv
Después de importar el módulo CSV, ahora podemos usarlo en nuestro programa Python.
A continuación, necesitamos abrir el archivo CSV usando la función de open()
modo de lectura:
with open('students.csv', 'r') as csvfile
Después de leer el archivo CSV, cree un objeto lector de CSV:
csvreader = csv.reader(csvfile)
Dado que la coma es el delimitador predeterminado, no es necesario mencionarlo específicamente. De lo contrario, debemos proporcionar el delimitador utilizado por el archivo CSV.
Finalmente, para extraer cada fila, use el bucle for para iterar el objeto csvreader e imprimirlos:
for student in csvreader:
print(student)
Con todo, el código final se verá así:
import csv
with open('students.csv', 'r') as csvfile
csvreader = csv.reader(csvfile)
for student in csvreader:
print(student)
Una vez que se haya escrito todo el código, ejecútelo 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 necesitamos mencionar el delimitador al leer y crear un objeto lector de CSV.
Por ejemplo, si ponemos un punto y coma (;) en lugar de una coma en Students.csv:
Y desea leer el archivo CSV basado en el punto y coma, el delimitador se mencionaría como:
csvreader = csv.reader(csvfile, delimiter = ';')
El código final con el delimitador específico se verá así:
import csv
with open('students.csv', 'r') as csvfile
csvreader = csv.reader(csvfile, delimiter = ';')
for student in csvreader:
print(student)
La salida será la misma que 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 escritor. Hay dos formas de escribir un archivo CSV:
- Escribe las líneas una por una usando la función
writerow()
- Escribe varias líneas usando la función
writerows()
Comencemos a escribir el código para escribir el archivo CSV y comprendamos mejor ambas formas:
Cómo escribir un archivo CSV usando la función writerow () en Python
Con esta función writerow()
, solo podemos escribir una línea a la vez en un archivo CSV.
Por ejemplo, para escribir tres líneas en un nuevo archivo employee.csv, python será así:
import csv
with open('employees.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["ID", "Name", "Age"])
writer.writerow([1, "John", 35])
writer.writerow([2, "Harry", 25])
El código anterior creará un archivo con el nombre employee.csv y agregará tres líneas en ese archivo employee.csv:
Sin embargo, este método se vuelve ineficaz cuando tenemos que agregar cientos de líneas. En estos casos, tenemos que agregar cada línea una a una, lo que se convierte en un trabajo frenético. Para resolver este problema, Python también proporciona una función writerows()
para escribir simultáneamente numerosas líneas en un archivo CSV.
Escriba varias líneas usando la función writerows ()
Usando la función writerows()
, simplemente podemos proporcionar una matriz de array(rows)
a la función writerows()
y agregará todas las líneas en el archivo CSV.
Por ejemplo, para escribir tres líneas en un archivo dipendenti.csv
, primero creamos una matriz denominada "empleados.csv" que contiene filas en forma de elementos de matriz y luego proporcionamos la matriz "empleados.csv" para que funcione writerows()
.
Con todo, la pitón será así:
import csv
with open('employees.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["ID", "Name", "Age"])
writer.writerow([1, "John", 35])
writer.writerow([2, "Harry", 25])
El código anterior creará un archivo con el nombre de employee.csv y agregará tres líneas a ese archivo employee.csv, como lo hizo para el procedimiento anterior:
Con este método, puede agregar miles de líneas al archivo CSV en poco tiempo proporcionando los datos en forma de matriz.
Conclusión
CSV es un formato de datos que se utiliza para almacenar datos en formato tabular y transferirlos entre diferentes aplicaciones. Python tiene un modo integrado que permite que el código lea, escriba y analice datos CSV en código Python.
En esta publicación, aprendimos cómo leer y escribir datos en forma de archivo CSV usando Python.