<p>我正在做一个项目,我必须管理一个客户列表,它存储在一个txt文件中。我的问题是,当我处理列表时,我把它上传到内存中,然后我处理它,实际上是一个对象列表,当我试图从列表中删除某一行时,我的问题就出现了,我把它从<code>list=[]</code>中删除,然后用新列表重写txt文件,但问题是我留下了空白行,当我再次尝试执行程序时,列表无法读取。我也想提到,我做了一个功能来消除空白行,但它似乎不起作用,有什么帮助?在</p>
<P>这是消除空白行</p>的函数
<pre><code>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)
</code></pre>
<p>这是重写文件的函数</p>
^{pr2}$
<p>这是从内存中的列表中删除项目的函数</p>
<pre><code>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!"])
</code></pre>
<P>这是从文件中删除一行的函数,它实际上是用新的^ {{CD1}}重写列表而没有给定的元素,然后“消除”空白空间,但它似乎不起作用,有人知道为什么吗?在</p>
<pre><code>def sterge_client2(self,ident):
lista.sterge_client(ident)
self.rescrie_clienti()
self.elimina_client()
</code></pre>
<pre><code>def elimina_client(self):
with open("clienti.txt","r") as f:
lines=f.readlines()
with open("clienti.txt","w") as f:
[f.write(line) for line in lines if line.strip() ]
</code></pre>
<p>带迭代器的Python3:</p>
^{pr2}$