使用Python消除文件中的重复行
让我们看看如何使用 Python 的文件处理功能从文件中删除多个重复的行。如果文件很小,只有几行,那么删除/消除重复行的任务可以手动完成,但是当涉及到大文件时,这就是Python来拯救你的地方。
方法 :
- 使用open()函数打开输入文件并传入标志-r以在读取模式下打开。
- 使用-w标志打开一个输出文件,我们将在其中删除所有重复行后存储文件的内容。
- 使用set()方法跟踪到目前为止看到的所有行,以便我们可以将其与当前读取的行进行比较。
- 现在,遍历输入文件的每一行并将其与目前看到的行进行比较。
- 如果当前行也出现在目前看到的行中,则跳过该行,否则将该行写入输出文件,并且不要忘记将当前行添加到目前看到的行中。
- 关闭文件。
例子:
为了这个例子,让我们创建一个文件(Lorem_input.txt),其中包含一些lipsum文本。所有重复的行都用粗体标记。
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus est neque, mollis vel massa vel, condimentum facilisis ipsum. Mauris vitae mollis magna.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Aliquam laoreet vitae nisi quis rutrum. Sed ut ligula nec enim consequat egestas vel a sapien. Pellentesque sit amet euismod felis. Pellentesque in nibh ultricies, convallis sapien id, sagittis odio. Vivamus placerat ex sed ligula porttitor dignissim.
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi posuere eget odio ut venenatis. Nam lobortis bibendum maximus. Donec venenatis sapien sed varius accumsan.
现在让我们创建一个空输出文件 (Lorem_output.txt),我们将在其中存储修改后的输入文件。
Python3
# creating the output file
outputFile = open('C:/Users/user/Desktop/Lorem_output.txt', "w")
# reading the input file
inputFile = open('C:/Users/user/Desktop/Lorem_input.txt', "r")
# holds lines already seen
lines_seen_so_far = set()
# iterating each line in the file
for line in inputFile:
# checking if line is unique
if line not in lines_seen_so_far:
# write unique lines in output file
outputFile.write(line)
# adds unique lines to lines_seen_so_far
lines_seen_so_far.add(line)
# closing the file
inputFile.close()
outputFile.close()
运行上述Python脚本将从输入文件中删除所有重复的行,并将修改后的文件写入输出文件。运行此脚本后,输出文件(Lorem_output.txt)将如下所示
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Phasellus est neque, mollis vel massa vel, condimentum facilisis ipsum. Mauris vitae mollis magna.
Aliquam laoreet vitae nisi quis rutrum. Sed ut ligula nec enim consequat egestas vel a sapien. Pellentesque sit amet euismod felis. Pellentesque in nibh ultricies, convallis sapien id, sagittis odio. Vivamus placerat ex sed ligula porttitor dignissim.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Morbi posuere eget odio ut venenatis. Nam lobortis bibendum maximus. Donec venenatis sapien sed varius accumsan.
在评论中写代码?请使用 ide.geeksforgeeks.org,生成链接并在此处分享链接。