Python novato frustrado un poco con el módulo csv. A este ritmo, habría sido más fácil si escribía el archivo del analizador a mí mismo, pero quiero hacer las cosas como Pythonic ....CSVWriter no guarda los datos en un archivo. ¿POR QUÉ?
He escrito un pequeño script en Python que debe guardar mis datos en un archivo CSV .
Aquí hay un fragmento de mi código:
import csv
wrtr = csv.writer(open('myfile.csv','wb'),delimiter=',', quotechar='"')
for row in rows:
wrtr.writerow([row.field1,row.field2,row.field3])
El myfile.csv archivo está creado con éxito, sin embargo, es vacío - pero tiene un bloqueo en ella, como su todavía siendo utilizado por el proceso de Python. Parece que los datos se han escrito en el archivo en la memoria, pero aún no se han eliminado en el disco.
Dado que el proceso de Python mantiene un bloqueo en el archivo, entonces asumo que soy responsable de liberar el bloqueo. Aquí están mis preguntas:
- ¿Cómo llego a pitón de descarga a disco
- ¿Cómo puedo cerrar el archivo que se abrió en el método csv.writer()?
"" "Hubiera sido más fácil si escribiera el analizador de archivos yo mismo" "- - Lo archivaré bajo" famosas últimas palabras ". –
La intuición principal es que el identificador de archivo aún está abierto después de escribir en el escritor csv. Si elimina la llamada 'abierta' fuera y mantiene un identificador de archivo separado que pasa a csv.writer (csvFile, ...) entonces puede cerrar ese identificador de archivo cuando haya terminado y se vaciará. La respuesta proporcionada por Tim explica algunas buenas maneras de hacer esto. – mindthief
csvwriter falta un método de descarga, esto es un descuido. –