擅长:python、mysql、java
<p>这应该起作用:</p>
<pre><code>def deleteDuplicateRecords(fileName):
try:
newFileName="filtered_"+fileName
with open(fileName,'r') as readFile, open(newFileName,'w') as writeFile:
for sorted_line in sorted({line for line in readFile}):
writeFile.write(sorted_line)
print(f"Duplicate rows removed successfully. Open the new file '{newFileName}'")
except FileNotFoundError:
print("File Not Found")
</code></pre>
<p>注意事项:</p>
<ol>
<li>正如其他人所提到的,如果您使用<code>with</code>,则在作用域结束时会自动关闭文件。你知道吗</li>
<li>如果使用集合,则不会将重复项添加到列表中,因此没有理由检查该项是否已存在于列表中</li>
<li>如果您有一个iterable(list、set等),您可以简单地使用<code>sorted</code>函数对结果进行排序</li>
<li>行<code>{line for line in readFile}</code>使用<a href="https://python-reference.readthedocs.io/en/latest/docs/comprehensions/set_comprehension.html" rel="nofollow noreferrer">set comprehension</a>以更简洁的方式从文件行创建一个集合。你知道吗</li>
</ol>