work - write csv files in python
Python CSV: elimina las cotizaciones del valor (3)
Para su ejemplo, lo siguiente funciona:
import csv
writer = csv.writer(open("out.csv", "wb"), quoting=csv.QUOTE_NONE)
reader = csv.reader(open("in.csv", "rb"), skipinitialspace=True)
writer.writerows(reader)
Es posible que necesite jugar con las opciones dialectales del lector y escritor CSV: consulte la documentación del módulo csv
.
Tengo un proceso donde un archivo CSV se puede descargar, editar y luego subir de nuevo. En la descarga, el archivo CSV está en el formato correcto, sin envolver las comillas dobles
1, someval, someval2
Cuando abro el archivo CSV en una hoja de cálculo, edito y guardo, agrega comillas dobles alrededor de las cadenas
1, "someEditVal", "someval2"
Pensé que esto era solo la acción de la hoja de cálculo (en este caso, openoffice). Quiero que mi script de carga elimine las comillas dobles de ajuste. No puedo eliminar todas las comillas, solo en el caso de que el cuerpo las contenga, y tampoco quiero simplemente verificar el primero y el último caracteres entre comillas dobles.
Estoy casi seguro de que la biblioteca CSV en Python sabría cómo manejar esto, pero no estoy seguro de cómo usarlo ...
EDITAR Cuando uso los valores dentro de un diccionario, resultan de la siguiente manera
{''header'':''"value"''}
Gracias
Para Python 3 :
import csv
writer = csv.writer(open("query_result.csv", "rt"), quoting=csv.QUOTE_NONE)
reader = csv.reader(open("out.txt", "wt"), skipinitialspace=True)
writer.writerows(reader)
La respuesta original proporciona este error en Python 3. También vea este SO para más detalles: csv.Error: el iterador debe devolver cadenas, no bytes
Rastreo (llamada más reciente): Archivo "remove_quotes.py", línea 11, en writer.writerows (reader) _csv.Error: iterator debería devolver cadenas, no bytes (¿abriste el archivo en modo texto?)
Gracias a todos los que estaban tratando de ayudarme, pero lo descubrí. Al especificar el lector, puede definir el quotechar
csv.reader(upload_file, delimiter='','', quotechar=''"'')
Esto maneja las citas de ajuste de cadenas.