Cómo agregar una nueva fila a CSV Python

Cómo agregar una nueva fila a CSV Python
En este artículo, vamos a explorar los métodos para agregar datos recién creados a un archivo CSV existente. Los módulos CSV proporcionan dos métodos para escribir el archivo CSV, que son:
  1. Escritor
  2. Presente

Vamos a utilizar estos métodos de escritura CSV para agregar nuestros datos recién creados a un archivo CSV existente.

Método 1: Uso del método CSV Writer ()

En este método, vamos a usar el método Writer () del CSV para agregar los datos recién creados al CSV.

Archivo CSV: El archivo CSV a continuación (prueba.csv) seremos usados ​​para agregar una nueva fila.

Mes, 1958,1959,1960
Enero, 340,360,417
Febrero, 318,342,391
Mar, 362,406,419
Abr, 348,396,461
Enero, 340,360,417
Febrero, 318,342,391

del escritor de importación de CSV

del escritor de importación de CSV
# esta función que agregó nuevos datos de fila en un archivo CSV existente
Def appendNewrow (csvfilename, elementstoappend):
# Abra el archivo CSV en el modo de apagado
con Open (csvfilename, 'a+', newline = ") como append_obj:
# Creó un objeto de escritor del módulo de escritor
append_writer = escritor (append_obj)
# El objeto de escritor creado que escribe una nueva fila para el CSV
append_writer.Writerow (Elementstoappend)
# Lista de nuevos elementos que queremos agregar
NewRow = ["Dec", 337, 405, 432]
# Llamar a una función que acepta dos parámetros Archivo CSV y Datos de New Row
appendnewrow ('prueba.CSV ', NewRow)

Producción:

Mes, 1958,1959,1960
Enero, 340,360,417
Febrero, 318,342,391
Mar, 362,406,419
Abr, 348,396,461
Enero, 340,360,417
Febrero, 318,342,391
Diciembre, 337,405,432

Línea 1: Importamos el módulo de escritor.

Línea 4 a 10: Creamos una función llamada "AppendNewrow" que acepta dos parámetros (el nombre del archivo CSV existente y los datos). Abrimos el archivo CSV (archivo CSV existente) con el modo Append ('A'), para que podamos agregar nuestros nuevos datos al archivo CSV. Para eso, creamos un objeto (append_writer) desde el módulo de escritor. Y en la siguiente línea, llamamos a Method Writerow desde el objeto append_writer para agregar los datos al CSV.

Línea 13 y 15: Creamos una nueva lista de datos que queremos agregar a un archivo CSV existente. En la línea 15, llamamos a la función "appendnewrow" y pasando dos parámetros (el nombre del archivo CSV existente y los datos).

Ahora, vamos a agregar datos donde faltan algunos datos.

En el ejemplo anterior, hemos visto que no faltan valor de la columna en los datos recién creados. Pero, ¿qué pasará si tenemos algún valor de columna faltante?? Entonces, incluso si tenemos algún valor de columna faltante, el módulo de escritor del CSV no tiene ningún método para verificar todos los valores de las columnas en los datos o no.

# Lista de nuevos elementos que queremos agregar
newRow = ["dec", 337, 432]
# Llamar a una función que acepta dos parámetros Archivo CSV y Datos de New Row
appendnewrow ('prueba.CSV ', NewRow)

Producción:

Mes, 1958,1959,1960
Enero, 340,360,417
Febrero, 318,342,391
Mar, 362,406,419
Abr, 348,396,461
Enero, 340,360,417
Febrero, 318,342,391
Diciembre, 337,405,432
Diciembre, 337,432

Creamos un nuevo conjunto de datos donde falta un valor de columna. Entonces, cuando ejecutamos el programa de ejemplo anterior, proporciona un resultado adjunto simple como se muestra en la salida anterior. Pero en la salida en sí, podemos ver que falta el valor 405. Como resultado, el módulo de escritor CSV carece de un método para determinar cualquier valor de columna faltante.

Entonces, si queremos ajustar el valor inteligente de la columna adecuado de los datos recién creados, incluso si hay algunos valores faltantes, debemos pasar un valor de cadena vacío junto con los datos, como a continuación:

newRow = ["dec", 337, ", 432]

El caso anterior no es un gran problema porque es solo una fila de datos, pero cuando tenemos miles de millones de filas, no podemos manejar tales situaciones con la cadena vacía que agrega el método. Porque entonces se convertirá en un trabajo muy tedioso.

Método 2: Uso del método DictWriter ()

En este método, vamos a discutir el método dictwriter () para agregar los datos recién creados al CSV. El método DictWriter () también tiene la facilidad para determinar qué valor de la columna falta porque es un método basado en diccionario y si algún valor clave está vacío, mantendrá una cadena vacía automáticamente.

Archivo CSV: Estamos utilizando el mismo archivo CSV (prueba.csv) como hemos usado en los ejemplos anteriores.

# esta función que agregó nuevos datos de fila en un archivo CSV existente
Def appendNewrow (csvfilename, elementstoappend):
# Abra el archivo CSV en el modo de apagado
con Open (csvfilename, 'a+', newline = ") como append_obj:
# Creó un objeto de escritor del módulo de escritor
append_writer = dictWriter (append_obj,
FieldNames = ['mes', '1958', '1959', '1960'])
# El objeto de escritor creado que escribe una nueva fila para el CSV
append_writer.Writerow (Elementstoappend)
# Lista de nuevos elementos que queremos agregar
newRow = "mes": "dec", "1958": "337", "1959": "405", "1960": "432"
# Llamar a una función que acepta dos parámetros Archivo CSV y Datos de New Row
appendnewrow ('prueba.CSV ', NewRow)

Producción:

Mes, 1958,1959,1960
Enero, 340,360,417
Febrero, 318,342,391
Mar, 362,406,419
Abr, 348,396,461
Enero, 340,360,417
Febrero, 318,342,391
Diciembre, 337,405,432

Línea 1: Importamos el método DictWriter.

Línea 4 a 12: Creamos una función llamada "AppendNewrow" que acepta dos parámetros (el nombre del archivo CSV existente y los datos). Abrimos el archivo CSV (existente) con el modo de append ('a'), para que podamos agregar nuestros nuevos datos de dict al archivo CSV. Luego pasamos el encabezado del CSV en forma de una lista al DictWriter mientras creamos el objeto en sí. Tenemos que decir los nombres de la columna del CSV al objeto antes de escribir en el CSV. De lo contrario, generará un error porque el objeto no podrá comprender los nombres clave del diccionario. Y en la siguiente línea, llamamos a Method Writerow desde el objeto append_writer para agregar los datos del diccionario al CSV.

Línea 14 a 16: Creamos un nuevo diccionario de datos que queremos agregar a un archivo CSV existente. En la línea 16, estamos llamando a la función "appendnewrow" y aprobando dos parámetros (el nombre del archivo CSV existente y los datos).

Ahora, vamos a agregar datos donde faltan algunos datos.

Como sabemos, el principal problema con el método del escritor es que no hay un método para detectar automáticamente que falta cualquier valor de columna. Pero el método DictWriter puede adivinar esto automáticamente con la ayuda de las teclas faltantes. Así que exploremos esto con un ejemplo.

# Lista de nuevos elementos que queremos agregar
newRow = "mes": "dec", "1958": "337", "1960": "432"
# Llamar a una función que acepta dos parámetros Archivo CSV y Datos de New Row
appendnewrow ('prueba.CSV ', NewRow)

Ahora, vamos a pasar nuevos datos de dict donde falta la clave ('1959') con su valor. Entonces, pasemos estos datos al programa y veamos el resultado.

Producción:

Mes, 1958,1959,1960
Enero, 340,360,417
Febrero, 318,342,391
Mar, 362,406,419
Abr, 348,396,461
Enero, 340,360,417
Febrero, 318,342,391
Diciembre, 337,405,432
Dic, 337, 432

La salida anterior muestra que en lugar del valor faltante, el método DictWriter puso una cadena vacía.

Conclusión

Hemos visto dos métodos para escribir datos recién creados en un archivo CSV existente. El primer escritor del método es bueno, pero solo en ese caso cuando no tenemos ningún valor de columna faltante. Porque, como ya hemos visto, el método del escritor de CSV no puede manejar situaciones de valor faltantes, e ingresará un valor de columna particular en algún otro valor de columna. Entonces, este es un gran inconveniente del método del escritor. Pero esta situación es manejada muy fácilmente por el método DictWriter debido a las teclas.