Saltar al contenido

Cómo leer y escribir un archivo csv usando Python

Después de tanto luchar pudimos dar con la solución de esta incógnita que ciertos de nuestros usuarios de esta web tienen. Si quieres aportar alguna información no dejes de compartir tu comentario.

Solución:

Este tutorial está escrito para Python 3, pero también funciona para Python 2

Para leer y escribir CSV usando Python, usamos csv módulo

Leer archivo CSV #

Un breve ejemplo de uso #

import csv
withopen('sample.csv', newline='')as csvfile:
    reader = csv.reader(csvfile)for r in reader:print(r)

Leyendo un archivo con un formato alternativo: #

import csv
withopen('sample', newline='')as csvfile:
    reader = csv.reader(csvfile, delimiter=':', quoting=csv.QUOTE_NONE)for row in reader:print(row)

Asume sample.csv el archivo tiene contenido:

Name, Address
Bob, 87 Abc Street

Detectar e informar errores al leer el archivo CSV #

import csv, sys
filename ='sample.csv'withopen(filename, newline='')as csvfile:
    reader = csv.reader(csvfile)try:for r in reader:print(r)except csv.Error as ex:
        sys.exit('File  at line : '.format(filename, reader.line_num, ex))

Escribir archivo CSV #

Un breve ejemplo de uso #

import csv
withopen('sample.csv', newline='')as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(["header ","Header 2","Header 3","Header 4"])
    writer.writerow([1,2,3,4])

Ya que open() se utiliza para abrir un archivo CSV para su lectura, el archivo se decodificará de forma predeterminada en Unicode utilizando la codificación predeterminada del sistema. Para decodificar un archivo usando una codificación diferente, use el argumento de codificación de open:

import csv
withopen('some.csv', newline='', encoding='utf-8')as csvfile:
    reader = csv.reader(csvfile)for row in reader:print(row)

Si newline='' no se especifica, las nuevas líneas incrustadas dentro de los campos entre comillas no se interpretarán correctamente y en plataformas como Windows que utilizan rn ropa en escribir un extra r será añadido. Siempre debe ser seguro especificar newline='', ya que el módulo csv realiza su propio manejo de nueva línea (universal).

Sección de Reseñas y Valoraciones

Acuérdate de que tienes permiso de interpretar tu experiencia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

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