Python做文本按行去重的实现方法


Posted in Python onOctober 19, 2016

文本:

每行在promotion后面包含一些数字,如果这些数字是相同的,则认为是相同的行,对于相同的行,只保留一行。

思路:

根据字典和字符串切割。

建立一个空字典。

读入文本,并对每行切割前半部分,在读入文本的过程中循环在这个字典中查找,如果没找到,则写入该行到字典。否则,则表示该行已经被写入过字典了(即出现重复的行了),不再写入字典,这就实现了对于重复的行只保留一行的目的。

文本如下:

/promotion/232 utm_source
/promotion/237 LandingPage/borrowExtend/? ;
/promotion/25113 LandingPage/mhd
/promotion/25113 LandingPage/mhd
/promotion/25199 com/LandingPage
/promotion/254 LandingPage/mhd/mhd4/? ;
/promotion/259 LandingPage/ydy/? ;
/promotion/25113 LandingPage/mhd
/promotion/25199 com/LandingPage
/promotion/25199 com/LandingPage

程序如下:

line_dict_uniq = dict()
with open('1.txt','r') as fd:
for line in fd:
key = line.split(' ')[0]
if key not in line_dict_uniq.values():
line_dict_uniq[key] = line
else:
continue
print line_dict_uniq 
print len(line_dict_uniq)
# 这里是打印了不重复的行(重复的只打印一次),实际再把这个结果写入文件就可以了,
# 就不写这段写入文件的代码了

上面这个程序执行效率比较低,改成如下会提高一些:

line_dict_uniq = dict()
with open('1.txt','r') as fd:
for line in fd:
key = line.split(' ')[0]
if key not in line_dict_uniq.keys():
line_dict_uniq[key] = line
else:
continue
print line_dict_uniq
print len(line_dict_uniq)

继续补充一个函数

# -*- coding: utf-8 -*-
'''
只使用与较小的文件,比较大的文件运行时间长
'''
def quchong(infile,outfile):

  infopen = open(infile,'r',encoding='utf-8')
  outopen = open(outfile,'w',encoding='utf-8')
  lines = infopen.readlines()
  list_1 = []
  for line in lines:
    if line not in list_1:
      list_1.append(line)
      outopen.write(line)
  infopen.close()
  outopen.close()
quchong("源文件路径","目标文件路径")

以上所述是小编给大家介绍的Python做文本按行去重,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
java直接调用python脚本的例子
Feb 16 Python
Python中声明只包含一个元素的元组数据方法
Aug 25 Python
python中Genarator函数用法分析
Apr 08 Python
python获取当前运行函数名称的方法实例代码
Apr 06 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
python如何读写csv数据
Mar 21 Python
Python 读取某个目录下所有的文件实例
Jun 23 Python
python实现图片彩色转化为素描
Jan 15 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
Python基础之条件控制操作示例【if语句】
Mar 23 Python
基于Python爬取搜狐证券股票过程解析
Nov 18 Python
pytorch损失反向传播后梯度为none的问题
May 12 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 #Python
python类中super()和__init__()的区别
Oct 18 #Python
Python 序列的方法总结
Oct 18 #Python
python 异常处理总结
Oct 18 #Python
python 队列详解及实例代码
Oct 18 #Python
django model去掉unique_together报错的解决方案
Oct 18 #Python
django批量导入xml数据
Oct 16 #Python
You might like
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
抓取YAHOO股票报价的类
2009/05/15 PHP
PHP高精确度运算BC函数库实例详解
2017/08/15 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
jquery tab标签页的制作
2010/05/10 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
全面解析Bootstrap中nav、collapse的使用方法
2016/05/22 Javascript
js print打印网页指定区域内容的简单实例
2016/11/01 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
vue-cli 3.0 版本与3.0以下版本在搭建项目时的区别详解
2018/12/11 Javascript
微信小程序学习笔记之目录结构、基本配置图文详解
2019/03/28 Javascript
如何在vue中使用jointjs过程解析
2020/05/29 Javascript
react-intl实现React国际化多语言的方法
2020/09/27 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
使用python实现省市三级菜单效果
2016/01/20 Python
python 自动去除空行的实例
2018/07/24 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Python分析最近大火的网剧《隐秘的角落》
2020/07/02 Python
Pycharm中如何关掉python console
2020/10/27 Python
巴基斯坦电子产品购物网站:Home Shopping
2017/09/14 全球购物
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
英国网上购买门:Direct Doors
2018/06/07 全球购物
英国在线女鞋目的地:SIMMI
2018/12/27 全球购物
美国办公用品折扣网站:Shoplet.com
2019/11/24 全球购物
酒店个人求职信范文
2014/01/25 职场文书
房屋买卖委托公证书
2014/04/08 职场文书
高中学校对照检查材料
2014/08/31 职场文书
房屋买卖协议书范本
2014/09/27 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
安全守法证明
2015/06/23 职场文书
公司处罚决定书
2015/06/24 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Python turtle编写简单的球类小游戏
2022/03/31 Python