Escribir archivos CSV en Python

CSV (valores separados por comas) es un formato de archivo simple que se utiliza para almacenar datos tabulares, como una hoja de cálculo o una base de datos. El archivo CSV almacena datos tabulares (números y texto) en texto sin formato. Cada línea del archivo es un registro de datos. Cada registro consta de uno o más campos, separados por comas. El uso de la coma como separador de campo es el origen del nombre de este formato de archivo.

Python proporciona un módulo integrado llamado csvpara trabajar con archivos CSV. Este módulo proporciona varias clases para escribir en CSV:

  • Usando la clase csv.writer
  • Usando la clase csv.DictWriter

Usando la clase csv.writer

csv.writerLa clase se utiliza para insertar datos en el archivo CSV. Esta clase devuelve un objeto escritor que es responsable de convertir los datos del usuario en una string delimitada. Un objeto csvfile debe abrirse con newline=''caracteres de nueva línea dentro de los campos citados, de lo contrario no se interpretarán correctamente.

Sintaxis: csv.writer(csvfile, dialect=’excel’, **fmtparams)

Parámetros:
csvfile: un objeto de archivo con el método write().
dialecto (opcional): Nombre del dialecto a utilizar.
fmtparams (opcional): parámetros de formato que sobrescribirán los especificados en el dialecto.

csv.writerLa clase proporciona dos métodos para escribir en CSV. son writerow()y writerows().

  • writerow(): este método escribe una sola fila a la vez. La fila de campo se puede escribir usando este método.

    Sintaxis:

    writerow(fields)
    
  • writerows(): este método se utiliza para escribir varias filas a la vez. Esto se puede usar para escribir una lista de filas.

    Sintaxis:

    Writing CSV files in Python
    writerows(rows)
    

Ejemplo:

# Python program to demonstrate
# writing to CSV
  
  
import csv 
    
# field names 
fields = ['Name', 'Branch', 'Year', 'CGPA'] 
    
# data rows of csv file 
rows = [ ['Nikhil', 'COE', '2', '9.0'], 
         ['Sanchit', 'COE', '2', '9.1'], 
         ['Aditya', 'IT', '2', '9.3'], 
         ['Sagar', 'SE', '1', '9.5'], 
         ['Prateek', 'MCE', '3', '7.8'], 
         ['Sahil', 'EP', '2', '9.1']] 
    
# name of csv file 
filename = "university_records.csv"
    
# writing to csv file 
with open(filename, 'w') as csvfile: 
    # creating a csv writer object 
    csvwriter = csv.writer(csvfile) 
        
    # writing the fields 
    csvwriter.writerow(fields) 
        
    # writing the data rows 
    csvwriter.writerows(rows)

Producción:

python-write-to-csv

Usando la clase csv.DictWriter

Esta clase devuelve un objeto escritor que asigna diccionarios a las filas de salida.

Sintaxis: csv.DictWriter(csvfile, fieldnames, restval=”, extrasaction=’raise’, dialect=’excel’, *args, **kwds)

Parámetros:
csvfile: un objeto de archivo con el método write().
nombres de campo: una secuencia de claves que identifican el orden en que se deben pasar los valores en el diccionario.
restval (opcional): especifica el valor que se escribirá si al diccionario le falta una clave en los nombres de campo.
acción adicional (opcional): si no se encuentra una clave en los nombres de campo, el parámetro de acción adicional opcional indica qué acción tomar. Si está configurado para generar, se generará un ValueError.
dialecto (opcional): Nombre del dialecto a utilizar.

csv.DictWriter proporciona dos métodos para escribir en CSV. Están:

  • writeheader(): writeheader() el método simplemente escribe la primera fila de su archivo csv usando los nombres de campo preespecificados.

    Sintaxis:

    writeheader()
    
  • writerows(): writerows El método simplemente escribe todas las filas, pero en cada fila, escribe solo los valores (no las claves).

    Sintaxis:

    writerows(mydict)
    

Ejemplo:

# importing the csv module 
import csv 
    
# my data rows as dictionary objects 
mydict =[{'branch': 'COE', 'cgpa': '9.0', 'name': 'Nikhil', 'year': '2'}, 
         {'branch': 'COE', 'cgpa': '9.1', 'name': 'Sanchit', 'year': '2'}, 
         {'branch': 'IT', 'cgpa': '9.3', 'name': 'Aditya', 'year': '2'}, 
         {'branch': 'SE', 'cgpa': '9.5', 'name': 'Sagar', 'year': '1'}, 
         {'branch': 'MCE', 'cgpa': '7.8', 'name': 'Prateek', 'year': '3'}, 
         {'branch': 'EP', 'cgpa': '9.1', 'name': 'Sahil', 'year': '2'}] 
    
# field names 
fields = ['name', 'branch', 'year', 'cgpa'] 
    
# name of csv file 
filename = "university_records.csv"
    
# writing to csv file 
with open(filename, 'w') as csvfile: 
    # creating a csv dict writer object 
    writer = csv.DictWriter(csvfile, fieldnames = fields) 
        
    # writing headers (field names) 
    writer.writeheader() 
        
    # writing data rows 
    writer.writerows(mydict) 

Producción:

python-csv

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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