让我们说一个输入文本文件" 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世界
您的帮助将不胜感激!!!
答案 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()