我正在尝试使用 Python 自动在电子表格中输入数据,但遇到了几个问题:
import xlsxwriter
import openpyxl
workbook = xlsxwriter.Workbook('se.xlsx')
worksheet = workbook.add_worksheet()
valores =[]
entra = 0
while entra != 2:
Val = input("Favor informar a largura, o comprimento e a espessura o preco do material e tempo de corte em segundo separados por espaços: ") ##please enter the values of width length the thickness the material price per kilo and the cut time
lst = Val.split()
print(lst)
L = int(lst[0])
C = int(lst[1])
E = int(lst[2])
V = (L * C * E * 8) / 1000000
P = int(lst[3])
T = int(lst[4])
Pt = (T * P) / 36
lst.append(Pt)
lst.append(V)
entra = int(input("Digite 2 para fechar ou 1 para adicionar mais elementos: "))
valores.append[lst]
lst.clear()
print(valores)
for row_num, row_data in enumerate(valores):
for col_num, col_data in enumerate(row_data):
worksheet.write(row_num, col_num, col_data)
# Salva o arquivo somente quando o loop terminar
workbook.close()
我试图不断输入数据,但我只写一行,它就会覆盖它。
至少有必要:
首先,
valores.append[lst]
中有一个轻微的语法错误,应该是valores.append(lst)
,因为valores.append()
是一个函数调用。
您的主要问题发生的原因是
lst.clear()
函数。 lst.clear()
函数会清除列表,同时也会清除您使用 valores.append(lst)
创建的引用该列表的标识符(变量)的内容。基本上 lst
与 valores
相关联。
这意味着,使用
lst.clear()
,您不仅可以清除 lst
的内容,还可以清除 lst
内部的 valores[0]
。
为了避免这种情况,您需要重新定义
lst
标识符,使其为空,您可以使用 lst = []
来实现。
长话短说,
你应该使用
lst = []
而不是 lst.clear()
我希望这有帮助