una ordenar operaciones manipular lista leer guardar generar escribir con como columna archivos archivo python csv

ordenar - operaciones con archivos csv python



¿Cómo leo y escribo archivos CSV con Python? (3)

Tengo un archivo example.csv con el contenido

1,"A towel,",1.0 42," it says, ",2.0 1337,is about the most ,-1 0,massively useful thing ,123 -2,an interstellar hitchhiker can have.,3

¿Cómo leo este example.csv con Python?

Del mismo modo, si tengo

data = [(1, "A towel,", 1.0), (42, " it says, ", 2.0), (1337, "is about the most ", -1), (0, "massively useful thing ", 123), (-2, "an interstellar hitchhiker can have.", 3)]

¿Cómo escribo data en un archivo CSV con Python?


Escribir un archivo CSV

Primero necesitas importar csv

Por ejemplo:

import csv with open(''eggs.csv'', ''wb'') as csvfile: spamwriter = csv.writer(csvfile, delimiter='' '', quotechar=''|'', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow([''Spam''] * 5 + [''Baked Beans'']) spamwriter.writerow([''Spam'', ''Lovely Spam'', ''Wonderful Spam''])


Aquí hay algunos ejemplos completos mínimos de cómo leer archivos CSV y cómo escribir archivos CSV con Python.

Python 2 + 3: leer un archivo CSV

Pitón puro

# -*- coding: utf-8 -*- import csv import sys # Define data data = [(1, "A towel,", 1.0), (42, " it says, ", 2.0), (1337, "is about the most ", -1), (0, "massively useful thing ", 123), (-2, "an interstellar hitchhiker can have.", 3)] # Write CSV file kwargs = {''newline'': ''''} mode = ''w'' if sys.version_info < (3, 0): kwargs.pop(''newline'', None) mode = ''wb'' with open(''test.csv'', mode, **kwargs) as fp: writer = csv.writer(fp, delimiter='','') # writer.writerow(["your", "header", "foo"]) # write header writer.writerows(data) # Read CSV file kwargs = {''newline'': ''''} mode = ''r'' if sys.version_info < (3, 0): kwargs.pop(''newline'', None) mode = ''rb'' with open(''test.csv'', mode, **kwargs) as fp: reader = csv.reader(fp, delimiter='','', quotechar=''"'') # next(reader, None) # skip the headers data_read = [row for row in reader] print(data_read)

Después de eso, los contenidos de data_read son

[[''1'', ''A towel,'', ''1.0''], [''42'', '' it says, '', ''2.0''], [''1337'', ''is about the most '', ''-1''], [''0'', ''massively useful thing '', ''123''], [''-2'', ''an interstellar hitchhiker can have.'', ''3'']]

Unicode y Python 2.X

Si desea escribir Unicode, debe instalar unicodecsv . No abra el archivo con codecs.open sino simplemente con open . Escríbelo con

import unicodecsv as csv # Write CSV file with open(''test.csv'', ''w'', newline='''') as fp: writer = csv.writer(fp, encoding=''utf-8'') # writer.writerow(["your", "header", "foo"]) # write header writer.writerows(data)

Relacionado

  • ¿Cómo escribo datos en formato csv como cadena (no archivo)?
  • ¿Cómo puedo usar io.StringIO () con el módulo csv? : Esto es interesante si desea servir un CSV sobre la marcha con Flask, sin almacenar realmente el CSV en el servidor.

mpu

Eche un vistazo a mi paquete de utilidades mpu para obtener uno súper simple y fácil de recordar:

import mpu.io data = mpu.io.read(''example.csv'', delimiter='','', quotechar=''"'', skiprows=None) mpu.io.write(''example.csv'', data)

Pandas

import pandas as pd # Read the CSV into a pandas data frame (df) # With a df you can do many things # most important: visualize data with Seaborn df = pd.read_csv(''myfile.csv'', sep='','') print(df) # Or export it in many ways, e.g. a list of tuples tuples = [tuple(x) for x in df.values] # or export it as a list of dicts dicts = df.to_dict().values()

Consulte los documentos read_csv para obtener más información. Tenga en cuenta que los pandas se infieren automáticamente si hay una línea de encabezado, pero también puede configurarla manualmente.

Si no has oído hablar de Seaborn , te recomiendo echarle un vistazo.

Otro

La lectura de archivos CSV es compatible con muchas otras bibliotecas, por ejemplo:

Archivo CSV creado

1,"A towel,",1.0 42," it says, ",2.0 1337,is about the most ,-1 0,massively useful thing ,123 -2,an interstellar hitchhiker can have.,3

Finales de archivo comunes

.csv

Trabajando con los datos

Después de leer el archivo CSV en una lista de tuplas / dictos o un marco de datos de Pandas, simplemente está trabajando con este tipo de datos. Nada CSV específico.

Alternativas

  • JSON: Agradable para escribir datos legibles por humanos; MUY comúnmente utilizado ( leer y escribir )
  • CSV: formato súper simple ( lectura y escritura )
  • YAML: Agradable de leer, similar a JSON ( leer y escribir )
  • pickle: un formato de serialización de Python ( lectura y escritura )
  • MessagePack ( paquete Python ): representación más compacta ( lectura y escritura )
  • HDF5 ( paquete Python ): agradable para matrices ( lectura y escritura )
  • XML: existe también * suspiro * ( read y write )

Para su aplicación, lo siguiente puede ser importante:

  • Soporte por otros lenguajes de programación.
  • Rendimiento de lectura / escritura
  • Compacidad (tamaño del archivo)

Ver también: Comparación de formatos de serialización de datos.

En caso de que esté buscando una forma de crear archivos de configuración, puede leer mi breve artículo Archivos de configuración en Python


import csv with open(fileLocation+''example.csv'',newline='''') as File: #the csv file is stored in a File object reader=csv.reader(File) #csv.reader is used to read a file for row in reader: print(row)