Ficheros csv (escritura)

writer

Además de poder leer el contenido de los ficheros csv, este módulo de Python también se puede usar para escribirlos. Para ello cuenta con el objeto writer el cual dispone de los métodos writerow() y writerows() para hacerlo.

El siguiente ejemplo utiliza el método writerow(), al cual se le pasa un lista como argumento, esta lista debe contener todos los elementos de la fila que se escribirá en el fichero csv. Previamente se ha de abrir un archivo en modo escritura usando el argumento ‘w’ en el método open().

import csv
fichero = open('perrosw.csv','w')
datos = csv.writer(fichero)
datos.writerow(['Raza','Tamaño'])
datos.writerow(['Dalmata','Grande'])
datos.writerow(['Basset Hound','Mediano'])
datos.writerow(['Border Collie','Mediano'])
datos.writerow(['Galgo Saluki','Grande'])
datos.writerow(['Husky Siberiano','Grande'])
datos.writerow(['Caniche','Pequeño'])
fichero.close()

El resultado de ejecutar este código es un fichero csv llamado perrosw.csv que contiene una fila con los nombres de los campos y seis líneas mas con los registros.

El uso de writerows() es muy parecido, excepto que en este caso hay que incluir una lista de todas las listas de elementos que se quieren escribir en el archivo.

import csv
fichero = open('perrosw.csv','w')
datos = csv.writer(fichero)
datos.writerows([['Raza','Tamaño'],['Dalmata','Grande'],['Basset Hound','Mediano'],['Border Collie','Mediano'],['Galgo Saluki','Grande'],['Husky Siberiano','Grande'],['Caniche','Pequeño']])
fichero.close()

Al igual que con el objeto reader, writer dispone de una serie de argumentos como son el delimitador de campo, el carácter de comillas, o el dialecto.

El siguiente ejemplo usa el dialecto unix y el resultado son los registros con comillas dobles.

import csv
fichero = open('perrosw2.csv','w')
datos = csv.writer(fichero, dialect='unix')
datos.writerows([['Raza','Tamaño'],['Dalmata','Grande'],['Basset Hound','Mediano'],['Border Collie','Mediano'],['Galgo Saluki','Grande'],['Husky Siberiano','Grande'],['Caniche','Pequeño']])
fichero.close()

Abriendo el archivo perrosw2.csv se puede observar la diferencia con el dialecto por defecto.

"Raza","Tamaño"
"Dalmata","Grande"
"Basset Hound","Mediano"
"Border Collie","Mediano"
"Galgo Saluki","Grande"
"Husky Siberiano","Grande"
"Caniche","Pequeño"

DictWriter

El objeto DictWriter se usa para mapear un diccionario que contendrá las líneas del fichero csv. El primer argumento que recibe es el nombre del fichero y el segundo los nombres de los campos.

Para escribir los nombres de los campos en el fichero se usa el método writeheader() y al método writerrow() se le pasa un diccionario con el registro.

import csv
fichero = open('perroswd.csv','w')
datos = csv.DictWriter(fichero,fieldnames=['Raza','Tamaño'])
datos.writeheader()
datos.writerow({'Raza':'Dalmata','Tamaño':'Grande'})
datos.writerow({'Raza':'Basset Hound','Tamaño':'Mediano'})
datos.writerow({'Raza':'Border Collie','Tamaño':'Mediano'})
datos.writerow({'Raza':'Galgo Saluki','Tamaño':'Grande'})
datos.writerow({'Raza':'Husky Siberiano','Tamaño':'Grande'})
datos.writerow({'Raza':'Caniche','Tamaño':'Pequeño'})
fichero.close()

Deja una respuesta

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