Estoy tratando de agregar una nueva fila a mi antiguo archivo csv. Básicamente, se actualiza cada vez que ejecuto el script Python.
En este momento estoy almacenando los viejos valores de filas csv en una lista y luego borrando el archivo csv y volviéndolo a crear con el nuevo valor de lista.
Quería saber si hay alguna forma mejor de hacerlo.
Prefiero esta solución usando el
csv
módulo de la biblioteca estándar y lawith
declaración para evitar dejar el archivo abierto.El punto clave se utiliza
'a'
para agregar cuando abre el archivo.Si está utilizando Python 2.7, puede experimentar nuevas líneas superfluas en Windows. Puede intentar evitar que lo usen en
'ab'
lugar de'a'
esto, sin embargo, le causará TypeError: se requiere un objeto similar a bytes, no 'str' en python y CSV en Python 3.6. Agregar elnewline=''
, como sugiere Natacha, causará una incompatibilidad hacia atrás entre Python 2 y 3 .fuente
Basado en la respuesta de @GM y prestando atención a la advertencia de @John La Rooy, pude agregar una nueva fila para abrir el archivo en
'a'
modo.No intenté con el escritor habitual (sin el Dict), pero creo que también estará bien.
fuente
¿Estás abriendo el archivo con el modo 'a' en lugar de 'w'?
Ver Leer y escribir archivos en los documentos de Python
fuente
Si el archivo existe y contiene datos, entonces es posible generar el
fieldname
parámetrocsv.DictWriter
automáticamente:fuente
fuente
Sigo de esta manera para agregar una nueva línea en un archivo .csv:
fuente