Teniendo problemas para escribir una lista en una nueva fila cada vez durante un bucle while con openpyxl.
Estoy encontrando problemas al insertar los valores de la lista en una nueva fila cada vez que el código hace un bucle.\nEn pocas palabras, necesito que el código cada vez que hace un bucle escriba los valores de ‘lst’ en una fila separada cada vez.
He investigado mucho para intentar comprender cómo funciona esto y he encontrado muchos ejemplos, pero desafortunadamente no he logrado hacer que el código funcione siguiendo esos ejemplos.
Este es el código:
max_value = 5
lst = []
while True:
wb = Workbook()
ws = wb.active
num = (max_value)
for n in range(num):
weight = float(input('Peso: '))
lst.append(weight)
ws.append(lst)
if n+1 == max_value:
wb.save(filename='path')
He intentado agregar ws.insert_rows(idx=2, amount=1)
justo después de la línea ws.append(lst)
de esta manera:
...
ws.insert_rows(idx=2, amount=1)
ws.append(lst)
if n+1 == max_value:
wb.save(filename='path')
Pero no hace nada porque supongo que necesita algo que indique al código que escriba los siguientes valores en esa fila.
También he intentado algo como esto:
...
next_avail_row = len(list(ws.rows))
ws.append(lst)
if n+1 == max_value:
wb.save(filename='path')
Pero aquí tampoco estoy seguro de cómo decirle al código después de encontrar next_avail_row = len(list(ws.rows))
que escriba en esa fila.
¿Alguna idea?
EDIT:
En este momento, si ingreso en el indicador, por ejemplo:
1,2,3,4,5
imprime:
[aquí había un enlace a una imagen]
Si sigo ingresando números, por ejemplo:
7,6,5,4,3
imprime:
[aquí había otro enlace a una imagen]
y así sucesivamente, lo que espero es:
[aquí había otro enlace a una imagen]
En pocas palabras, cada vez que se llama a la función, debe escribir en el mismo archivo, pero una fila más abajo. Espero que la explicación sea clara.
davy.ai
Para insertar los valores de la lista en una nueva fila cada vez que el código se repite, puedes modificar la línea
ws.append(lst)
de la siguiente manera:Esto recorrerá cada valor en
lst
y los agregará en una nueva fila en la hoja de cálculo. El[i]
asegura que cada valor se inserte como una celda individual en una nueva fila.Aquí está el código actualizado:
Esto debería escribir cada valor en una fila separada cada vez que el código se repita.