如何在Python函数中消除重复的行?

如何在Python函数中消除重复的行?

在本文中,我们将讨论如何在Python中删除多个重复行。如果文件很小且只有几行,可以手动执行从中删除重复行的过程。然而,当处理大文件时,Python可以帮助实现这一目标。

阅读更多:Python 教程

使用文件处理方法

Python具有用于创建、打开和关闭文件的内置方法,这使得处理文件变得更加容易。在文件打开时,Python还可以执行多个文件操作,例如读取、写入和追加数据。

为了从Python文本文件或函数中删除重复行,我们在Python中使用文件处理方法。文本文件或函数必须与包含Python程序的.py文件在同一个目录中。

算法

以下是消除Python函数中重复行的方法

  • 由于我们只需要读取此文件的内容,所以首先以只读模式打开输入文件。

  • 现在,以写入模式打开输出文件,以将内容写入此文件。

  • 逐行读取输入文件,然后检查输出文件,以查看是否将任何类似于此行的行写入其中。

  • 如果没有,则将此行添加到输出文件中,并将该行的哈希值保存在集合中。我们将检查每行的哈希值而不是检查和存储整个行。这在处理大文件时更加有效,并且占用的空间更小。

  • 如果哈希值已添加到集合中,则跳过该行。

  • 完成所有工作后,输出文件将包含输入文件中的每一行,而不是重复的内容。

在此处,输入文件即‘File.txt’包含以下数据:

Welcome to TutorialsPoint.
Welcome to TutorialsPoint.
Python programming language in this file.
eliminate repeated lines.
eliminate repeated lines.
eliminate repeated lines.
Skip the line.

示例

以下是消除Python函数中重复行的示例 –

import hashlib
# 输入文件和输出文件的路径
OutFile = 'C:\Users\Lenovo\Downloads\Work TP\pre.txt'
InFile = r'C:\Users\Lenovo\Downloads\Work TP\File.txt'
# 存储已经出现的行
lines_present = set()
# 以写入模式打开输出文件以在其中写入
The_Output_File = open(OutFile, "w")

# 循环打开文件并将其放入读取模式
for l in open(InFile, "r"):
   # 找到当前行的哈希值
      # 在执行哈希之前,我们会删除该行末尾的任何空格和换行符。
      # 使用hashlib库确定行的哈希值。
      hash_value = hashlib.md5(l.rstrip().encode('utf-8')).hexdigest()
      if hash_value not in lines_present:
         The_Output_File.write(l)
         lines_present.add(hash_value)
# 关闭输出文本文件
The_Output_File.close()

输出

我们可以看到以下输出,输入文件中所有重复的行都被消除,输出文件包含如下所示的唯一数据 –

欢迎来到TutorialsPoint。
此文件中的Python编程语言。
消除重复的行。
跳过这一行。

示例

以下是在Python函数中消除重复行的另一个示例 –

#输入文件和输出文件的路径
#以写模式创建输出文件
OutFile = open('C:\Users\Lenovo\Downloads\Work TP\pre.txt', "w")
11
#以读模式创建输入文件
InFile = open('C:\Users\Lenovo\Downloads\Work TP\File.txt', "r")
#保持已经看见的行
lines_present = set()
#迭代文件中的每一行
for l in InFile:
   #检查行是否唯一
   if l not in lines_present:
      #将所有唯一行写入输出文件
      OutFile.write(l)
      #在lines_present中添加唯一行
      lines_present.add(l)
#关闭输出文本文件
OutFile.close()
InFile.close()

输出

我们可以看到以下输出,输入文件中所有重复的行都被消除,输出文件包含如下所示的唯一数据 –

欢迎来到TutorialsPoint。
此文件中的Python编程语言。
消除重复的行。
跳过这一行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程