擅长:python、mysql、java
<p>我以前有过这样的愿望,在迭代时需要删除列表项。通常建议只重新创建一个包含所需内容的新列表<a href="http://%20https://stackoverflow.com/questions/1207406/how-to-remove-items-from-a-list-while-iterating" rel="nofollow noreferrer">here</a></p>
<p>但是,以下是一种快速而肮脏的方法,可以从列表中删除该文件:</p>
<pre><code>lst_exclusion_terms = ['bob','jenny', 'michael']
file_list = ['1.txt', '2.txt', '3.txt']
print("Before removing item:")
print(file_list)
flag = True
while flag:
for i,f in enumerate(file_list):
with open(f, "r", encoding="utf-8") as file:
content = file.read()
if any(entry in content for entry in lst_exclusion_terms):
file_list.pop(i)
flag = False
break
print("After removing item")
print(file_list)
</code></pre>
<p>在本例中,文件<code>3.txt</code>已从列表中删除,因为它与<code>lst_exclusion_terms</code>匹配</p>
<p>以下是每个文件中使用的内容:</p>
<pre><code>#1.txt
abcd
</code></pre>
<pre><code>#2.txt
5/12/2021
</code></pre>
<pre><code>#3.txt
bob
jenny
michael
</code></pre>