我正在做一个项目,我必须管理一个客户列表,该列表存储在一个 txt 文件中。我的问题如下,当我使用列表时,我将它上传到内存到一个list=[]
变量中,然后我使用它,实际上是一个对象列表,当我尝试从列表中删除某一行时,我的问题就出现了,我将它从表格中删除,list=[]
然后我用新列表重写了 txt 文件,但问题是我留下了空白行,当我尝试再次执行程序时,无法读取列表。我还想提一下,我做了一个功能来消除空白行,但它似乎不起作用,有什么帮助吗?
这是消除空行的功能
def elimina_client(self):
f = open("clienti.txt","r")
lines=f.readlines()
f.close
f = open("clienti.txt","w")
for line in lines:
if line!="":
f.write(line)
这是重写文件的函数
def rescrie_clienti(self):
"""This function rewrites the clienti document"""
with open(self.fisier2,'w') as f:
for i in range(0,len(lista.lista_clienti)):
if i==len(lista.lista_clienti)-1 :
s =str(lista.lista_clienti[i].get_identitate())+","+str(lista.lista_clienti[i].get_nume())+","+str(lista.lista_clienti[i].get_cnp()+","+str(lista.lista_clienti[i].get_filme_inchiriate())+","+str(lista.lista_clienti[i].get_inchirieri()))
f.write("\n")
f.writelines(s)
else:
s =str(lista.lista_clienti[i].get_identitate())+","+str(lista.lista_clienti[i].get_nume())+","+str(lista.lista_clienti[i].get_cnp()+","+str(lista.lista_clienti[i].get_filme_inchiriate())+","+str(lista.lista_clienti[i].get_inchirieri()))
f.writelines(s)
这是从内存列表中删除项目的实际功能
def sterge_client(self,ident):
"Deletes a client from the list"
k=0
for element in self.lista_clienti:
if element.get_identitate()==ident:
self.lista_clienti.remove(element)
k=1
if k==0:
raise RepositoryException(["Nu exista acest ID!"])
这是应该从文件中删除 a 行的函数,它实际上所做的是用list=[]
没有给定元素的 new 重写列表,然后“消除”空格,但它似乎不起作用,任何人都知道为什么 ?
def sterge_client2(self,ident):
lista.sterge_client(ident)
self.rescrie_clienti()
self.elimina_client()