如何删除保留第一次出现的重复行

时间:2015-07-14 15:35:12

标签: python-2.7

让我们说一个输入文本文件" input_msg.txt"文件包含以下记录..

1月1日02:32:40你好欢迎来到蟒蛇世界 1月1日02:32:40你好欢迎来到蟒蛇世界
3月31日23:31:55学习python
3月31日23:31:55学习python是聪明的 3月31日23:31:56 python是很好的脚本语言 1月1日00:00:01你好欢迎来到蟒蛇世界 1月1日00:00:02你好欢迎来到python世界
3月31日23:31:55学习python
3月31日23:31:56 python是很好的脚本语言

预期的输出文件(让我们说输出文件.txt)应包含以下记录...

1月1日02:32:40你好欢迎来到蟒蛇世界 1月1日02:32:40你好欢迎来到蟒蛇世界
3月31日23:31:55学习python
3月31日23:31:55学习python是聪明的 3月31日23:31:56 python是很好的脚本语言 1月1日00:00:01你好欢迎来到蟒蛇世界 1月1日00:00:02你好欢迎来到python世界

注意:我需要以" Jan 1()"开头的所有记录(包括重复)。而且我也不需要以" 1月1日开始的重复记录()"

我尝试过以下程序,其中所有重复记录都将被删除。

def remove_Duplicate_Lines(inputfile, outputfile):  
   with open(inputfile) as fin, open(outputfile, 'w') as out:
      lines = (line.rstrip() for line in fin)
      unique_lines = OrderedDict.fromkeys( (line for line in lines if line) )
      out.writelines("\n".join(unique_lines.iterkeys()))
 return 0

我的计划的输出如下:

1月1日02:32:40你好欢迎来到蟒蛇世界 3月31日23:31:55学习python
3月31日23:31:55学习python是聪明的 3月31日23:31:56 python是很好的脚本语言 1月1日00:00:01你好欢迎来到python世界

您的帮助将不胜感激!!!

1 个答案:

答案 0 :(得分:0)

试试这个。

inputFile = open("in.txt", "r")
log = []
for line in inputFile:
    if line in log and line[0:5] != "Jan 1":
        pass
    else:
        log.append(line)
inputFile.close()

outFile = open("out.txt", "w")

for item in log:
    outFile.write(item)
outFile.close()