El formato CSV es el formato de importación y exportación más utilizado para bases de datos y hojas de cálculo. Este tutorial le dará una introducción detallada a CSV y los módulos y clases disponibles para leer y escribir datos en archivos CSV. También cubrirá un ejemplo de trabajo para mostrarle cómo leer y escribir datos en un archivo CSV en Python.
Un archivo CSV (valores separados por comas) permite que los datos se guarden en una estructura tabular con una extensión .csv. Los archivos CSV se han utilizado ampliamente en aplicaciones de comercio electrónico porque se consideran muy fáciles de procesar. Algunas de las áreas donde se han utilizado incluyen:
El módulo CSV tiene varias funciones y clases disponibles para leer y escribir CSV, e incluyen:
El módulo csv.reader toma los siguientes parámetros:
archivo csv
: Este suele ser un objeto que admite el protocolo iterador y generalmente devuelve una cadena cada vez que se __siguiente__()
método se llama.dialecto = 'excel'
: Un parámetro opcional que se usa para definir un conjunto de parámetros específicos para un dialecto CSV particular.fmtparams
: Un parámetro opcional que se puede usar para anular los parámetros de formato existentes.Aquí hay un ejemplo de cómo usar el módulo csv.reader.
importar csv con open ('example.csv', newline = ") como File: reader = csv.reader (File) para row en reader: print (row)
Este módulo es similar al módulo csv.reader y se utiliza para escribir datos en un CSV. Toma tres parámetros:
csvfilmi
: Estapuedeser cualquier objeto con un escribir()
método.dialecto = 'excel'
: Un parámetro opcional utilizado para definir un conjunto de parámetros específicos para un CSV particular.fmtparam
: Un parámetro opcional que se puede usar para anular los parámetros de formato existentes.El DictReader y el DictWriter son clases disponibles en Python para leer y escribir en CSV. Aunque son similares a las funciones de lector y escritor, estas clases usan objetos de diccionario para leer y escribir en archivos csv.
Crea un objeto que mapea la información leída en un diccionario cuyas claves son dadas por el nombres de campo
parámetro. Este parámetro es opcional, pero cuando no se especifica en el archivo, los datos de la primera fila se convierten en las claves del diccionario..
Ejemplo:
importar csv con open ('name.csv') como csvfile: reader = csv.DictReader (csvfile) para la fila en el lector: print (fila ['first_name'], fila ['last_name'])
Esta clase es similar a la clase DictWriter y hace lo contrario, que es escribir datos en un archivo CSV. La clase se define como csv.
DictWriter
(
archivo csv
,
nombres de campo
,
restval = "
,
extrasaction = 'subir'
,
dialecto = 'excel'
,
* args
,
**
kwds
)
los nombres de campo
el parámetro define la secuencia de teclas que identifican el orden en que los valores en el diccionario se escriben en el archivo CSV. A diferencia del DictReader, esta clave no es opcional y debe definirse para evitar errores al escribir en un CSV.
Un dialecto es una clase auxiliar que se utiliza para definir los parámetros para un determinado lector
o escritor
ejemplo. Los dialectos y los parámetros de formato deben declararse al realizar una función de lector o escritor.
Hay varios atributos que son compatibles con un dialecto:
','
.QUOTE_NONE
.escritor
. Es por defecto '\ r \ n'
.'' '
.Cierto
, Cualquier espacio en blanco inmediatamente después de la delimitador es ignorado.Cierto
, genera un error de excepción en una entrada de CSV incorrecta.Veamos cómo leer un archivo CSV usando los módulos de ayuda que hemos discutido anteriormente.
Cree su archivo CSV y guárdelo como example.csv. Asegúrese de que tiene la .csv
Extensión y completar algunos datos. Aquí tenemos nuestro archivo CSV que contiene los nombres de los estudiantes y sus calificaciones.
A continuación se muestra el código para leer los datos en nuestro CSV usando tanto csv.reader
función y la csv.DictReader
clase.
importar csv con abrir ('example.csv') como Archivo: reader = csv.reader (Archivo, delimitador = ",", quotechar = ",", quoting = csv.QUOTE_MINIMAL) para la fila en el lector: imprimir (fila)
En el código anterior, importamos el módulo CSV y luego abrimos nuestro archivo CSV como Expediente
. Luego definimos el objeto lector y usamos el csv.reader
Método para extraer los datos en el objeto. Luego iteramos sobre el lector
Objetar y recuperar cada fila de nuestros datos..
Mostramos los datos leídos imprimiendo su contenido en la consola. También hemos especificado los parámetros requeridos, como delimitador, quotechar y cotización.
Salida
['first_name', 'last_name', 'Grade'] ['Alex', 'Brian', 'B'] ['Rachael', 'Rodriguez', 'A'] ['Tom', 'smith', 'C ']
Como mencionamos anteriormente, DictWriter nos permite leer un archivo CSV asignando los datos a un diccionario en lugar de cadenas como en el caso de csv.reader
módulo. Aunque el nombre de campo es un parámetro opcional, es importante tener siempre sus columnas etiquetadas para facilitar la lectura.
Aquí le mostramos cómo leer un CSV utilizando la clase DictWriter..
importar csv results = [] with open ('example.csv') como File: reader = csv.DictReader (File) para row en reader: results.append (row) print results
Primero importamos el módulo csv e inicializamos una lista vacía resultados
que utilizaremos para almacenar los datos recuperados. Luego definimos el objeto lector y usamos el csv.DictReader
Método para extraer los datos en el objeto. Luego iteramos sobre el lector
Objetar y recuperar cada fila de nuestros datos..
Finalmente, agregamos cada fila a la lista de resultados e imprimimos el contenido en la consola.
Salida
['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez ', ' Grade ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grade ':' B ',' first_name ':' Jane ',' last_name ': 'Oscar', 'Grado': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']
Como puede ver arriba, usar la clase DictReader es mejor porque proporciona nuestros datos en un formato de diccionario en el que es más fácil trabajar con ellos..
Veamos ahora cómo escribir datos en un archivo CSV usando el csv.writer
función y la csv.dictwriter
clase discutida al principio de este tutorial.
El siguiente código escribe los datos definidos en el ejemplo2.csv
expediente.
importar csv myData = [["first_name", "second_name", "Grade"], ['Alex', 'Brian', 'A'], ['Tom', 'Smith', 'B']] myFile = abrir ('example2.csv', 'w') con myFile: writer = csv.writer (myFile) writer.writerows (myData) print ("Escritura completa")
Primero importamos el módulo csv, y el escritor()
La función creará un objeto adecuado para escribir. Para iterar los datos sobre las filas, necesitaremos usar el escritores ()
función.
Aquí está nuestro CSV con los datos que le hemos escrito..
Escribamos los siguientes datos a un CSV.
data = ['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name': 'Rodriguez', 'Grade': 'C', 'first_name': 'Tom', 'last_name': 'smith', 'Grade': 'B', 'first_name': 'Jane', 'last_name ':' Oscar ', ' Grado ':' A ',' first_name ':' Kennzy ',' last_name ':' Tim ']
El código es como se muestra a continuación.
importar csv con open ('example4.csv', 'w') como csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerow ('Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian') writer.writerow ('Grade': 'A', 'first_name': 'Rachael' , 'last_name': 'Rodriguez') writer.writerow ('Grade': 'B', 'first_name': 'Jane', 'last_name': 'Oscar') writer.writerow ('Grade': ' B ',' first_name ':' Jane ',' last_name ':' Loive ') print ("Escritura completa")
Primero definimos el nombres de campo
, que representará los encabezados de cada columna en el archivo CSV. los writerrow ()
El método escribirá en una fila a la vez. Si desea escribir todos los datos a la vez, utilizará el writerrows ()
método.
Aquí es cómo escribir a todas las filas a la vez.
importar csv con open ('example5.csv', 'w') como csvfile: fieldnames = ['first_name', 'last_name', 'Grade'] writer = csv.DictWriter (csvfile, fieldnames = fieldnames) writer.writeheader () writer.writerows (['Grade': 'B', 'first_name': 'Alex', 'last_name': 'Brian', 'Grade': 'A', 'first_name': 'Rachael', 'last_name ':' Rodriguez ', ' Grade ':' C ',' first_name ':' Tom ',' last_name ':' smith ', ' Grade ':' B ',' first_name ':' Jane ', 'last_name': 'Oscar', 'Grade': 'A', 'first_name': 'Kennzy', 'last_name': 'Tim']) print ("escritura completa")
Este tutorial ha cubierto la mayor parte de lo que se requiere para poder leer y escribir con éxito en un archivo CSV utilizando las diferentes funciones y clases proporcionadas por Python. Los archivos CSV se han utilizado ampliamente en aplicaciones de software porque son fáciles de leer y administrar y su pequeño tamaño los hace relativamente rápidos de procesar y transferir..
No dude en ver lo que tenemos disponible para la venta y para estudiar en el mercado, y no dude en hacer cualquier pregunta y proporcionar sus valiosos comentarios utilizando el siguiente feed..
Aprende Python con nuestra completa guía de tutoriales de Python, ya sea que estés empezando o seas un programador experimentado que busca aprender nuevas habilidades..