csv – Lectura y escritura de archivos CSV¶

Contenidos del módulo¶

El csv define las siguientes funciones:

csv.reader(csvfile, dialect = «excel», ** fmtparams ) ¶

Devuelve un objeto lector que iterará sobre las líneas en el csvfile dado. El archivo csv puede ser cualquier objeto que admita el protocolo iterador y devuelva astring cada vez que se llame a su método __next__() – Los objetos de archivo y los objetos de lista son adecuados. Si csvfile es un objeto de archivo, debe abrirse con newline="". 1 Se puede proporcionar un parámetro de dialecto opcional que se utiliza para definir un conjunto de parámetros específicos para un dialecto CSV particular. Puede ser una instancia de una subclase de la clase Dialect o una de las cadenas devueltas por la función list_dialects(). Los otros argumentos opcionales de la palabra clave fmtparams se pueden proporcionar para anular los parámetros de formato individuales en el dialecto actual. Para obtener detalles completos sobre el dialecto y los parámetros de formato, consulte la sección Dialectos y parámetros de formato.

Cada fila leída del archivo csv se devuelve como una lista de cadenas. No se realiza ninguna conversión automática de tipos de datos a menos que se especifique la opción QUOTE_NONNUMERIC (en cuyo caso los campos sin comillas se transforman en flotantes).

Un breve ejemplo de uso:

csv.writer(csvfile, dialect = «excel», ** fmtparams) ¶

Devuelve un objeto de escritura responsable de convertir el los datos del usuario en cadenas delimitadas en el objeto similar a un archivo dado. csvfile puede ser cualquier objeto con un método write(). Si csvfile es un objeto de archivo, debe abrirse con newline="" 1. Se puede proporcionar un parámetro de dialecto opcional que se usa para definir un conjunto de parámetros específicos de un dialecto CSV en particular. Puede ser una instancia de una subclase de la clase Dialect o una de las cadenas devueltas por la función list_dialects(). Los otros argumentos opcionales de la palabra clave fmtparams se pueden proporcionar para anular los parámetros de formato individuales en el dialecto actual. Para obtener detalles completos sobre el dialecto y los parámetros de formato, consulte la sección Dialectos y parámetros de formato. Para que sea lo más fácil posible la interfaz con módulos que implementan la API de base de datos, el valor None se escribe como una cadena vacía. Si bien esta no es una transformación reversible, facilita el volcado de valores de datos SQL NULL en archivos CSV sin preprocesar los datos devueltos por una llamada cursor.fetch*. Todos los demás datos que no son cadenas se encadenan con str() antes de ser escrito.

Un breve ejemplo de uso:

csv.register_dialect(nombre]) ¶

Asociar dialecto con nombre. el nombre debe ser una cadena. El dialecto se puede especificar pasando una subclase de Dialect, o mediante argumentos de palabra clave fmtparams, o ambos, con argumentos de palabra clave que prevalezcan sobre los parámetros del dialecto. Para obtener detalles completos sobre el dialecto y los parámetros de formato, consulte la sección Dialectos y parámetros de formato.

csv.unregister_dialect(nombre) ¶

Elimine el dialecto asociado con el nombre del registro de dialectos. Se genera un Error si el nombre no es un nombre de dialecto registrado.

csv.get_dialect(nombre) ¶

Devuelve el dialecto asociado con el nombre. Se genera un Error si el nombre no es un nombre de dialecto registrado. Esta función devuelve un Dialect inmutable.

csv.list_dialects() ¶

Devuelve los nombres de todos los dialectos registrados.

csv.field_size_limit() ¶

Devuelve el tamaño de campo máximo actual permitido por el analizador. Si se da new_limit, este se convierte en el nuevo límite.

El módulo csv define las siguientes clases:

classcsv.DictReader(f, fieldnames = None, restkey = None, restval = None, dialect = «excel», * args, ** kwds) ¶

Crear un objeto que funciona como un lector normal pero mapea la información en cada fila a un dict cuyas claves son dadas por el parámetro de nombres de campo opcional.

El parámetro de nombres de campo es una secuencia. Si se omiten los nombres de campo, los valores de la primera fila del archivo f se utilizarán como nombres de campo. Independientemente de cómo se determinen los nombres de campo, el diccionario conserva su orden original.

Si una fila tiene más campos que nombres de campo, los datos restantes se colocan en una lista y se almacenan con el nombre de campo especificado por restkey (que por defecto es None). Si una fila que no está en blanco tiene menos campos que nombres de campo, los valores faltantes se completan con el valor de restval (que por defecto es None).

Todos los demás argumentos opcionales o de palabras clave se pasan a la instancia reader subyacente.

Modificado en la versión 3.6: las filas devueltas son ahora de tipo OrderedDict.

Modificado en la versión 3.8: las filas devueltas ahora son de tipo dict.

Un breve ejemplo de uso:

classcsv.DictWriter( f, fieldnames, restval = «», extrasaction = «raise», dialect = «excel», * args, ** kwds) ¶

Cree un objeto que funcione como un escritor normal pero mapee diccionarios en filas de salida. El parámetro de nombres de campo es un sequence de claves que identifican el orden en el que los valores del diccionario pasados al método writerow() se escriben en filef. El parámetro opcional restval especifica el valor que se debe escribir si al diccionario le falta una clave en los nombres de campo. Si el diccionario pasado al método writerow() contiene una clave no encontrada en los nombres de campo, el parámetro de extracción opcional indica qué acción tomar. Si está configurado como "raise", se eleva el valor predeterminado, un ValueError. Si se establece en "ignore", se ignoran los valores adicionales en el diccionario. Los argumentos opcionales o de palabras clave se pasan a la instancia writer subyacente.

Tenga en cuenta que, a diferencia de la clase DictReader, los nombres de campo El parámetro de la clase DictWriter no es opcional.

Un breve ejemplo de uso:

classcsv.Dialect

La clase Dialect es una clase contenedora en la que se confía principalmente por sus atributos, que se utilizan para definir los parámetros de un reader o writer instancia.

classcsv.excel

La clase excel define las propiedades habituales de un archivo CSV generado por Excel. Está registrado con el nombre de dialecto "excel".

classcsv.excel_tab

La clase excel_tab define las propiedades habituales de un archivo delimitado por TAB generado por Excel. Está registrado con el nombre de dialecto "excel-tab".

classcsv.unix_dialect

La clase unix_dialect define las propiedades habituales de un archivo CSV generado en sistemas UNIX, es decir, utilizando "\n" como terminador de línea y entre comillas en todos los campos. Está registrado con el nombre de dialecto "unix".

Nuevo en la versión 3.2.

classcsv.Sniffer

La clase Sniffer se usa para deducir el formato de un archivo CSV.

La clase Sniffer proporciona dos métodos:

sniff(muestra, delimitadores = Ninguno) ¶

Analizar la muestra dada y devuelve una Dialect subclase que refleja los parámetros encontrados. Si se proporciona el parámetro de delimitadores opcionales, se interpreta como una cadena que contiene posibles caracteres delimitadores válidos.

has_header(muestra) ¶

Analice el texto de muestra (se presume que está en CSV) y devuelve True si la primera fila parece ser una serie de encabezados de columna.

Un ejemplo de Sniffer use:

El módulo csv define las siguientes constantes:

csv.QUOTE_ALL

Indica a los objetos writer que citen todos los campos.

csv.iv idcsv.QUOTE_NONNUMERIC

Indica a los objetos writer que citen todos los campos no numéricos .

Indica al lector que convierta ert todos los campos no entrecomillados para escribir float.

csv.QUOTE_NONE

Instruye writer objetos para nunca citar campos. Cuando el delimitador actual aparece en los datos de salida, está precedido por el carácter de escape actual. Si no se establece escapechar, el escritor generará Error si se encuentran caracteres que requieran escape.

Instruye reader para no realizar ningún procesamiento especial de caracteres de comillas.

El módulo csv define la siguiente excepción:

exceptioncsv.Error

Deja una respuesta

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