Python实现简单过滤文本段的方法


Posted in Python onMay 24, 2017

本文实例讲述了Python实现简单过滤文本段的方法。分享给大家供大家参考,具体如下:

一、问题:

如下文本:

## Alignment 0: score=397.0 e_value=8.2e-18 N=9 scaffold1&scaffold106 minus
 0- 0:  10026549  10007782   2e-75
 0- 1:  10026550  10007781   8e-150
 0- 2:  10026552  10007780   1e-116
 0- 3:  10026555  10007778    0
 0- 4:  10026570  10007768    0
 0- 5:  10026579  10007758   4e-15
 0- 6:  10026581  10007738   2e-44
 0- 7:  10026587  10007734   9e-145
 0- 8:  10026591  10007732   2e-147
## Alignment 1: score=2304.0 e_value=1e-164 N=47 scaffold1&scaffold107 minus
 1- 0:  10026836  10007942   2e-84
 1- 1:  10026839  10007940    0
 1- 2:  10026840  10007938    0
 1- 3:  10026842  10007937   9e-82
 1- 4:  10026843  10007935   7e-79
 1- 5:  10026847  10007933   3e-119
 1- 6:  10026850  10007932   2e-87
 1- 7:  10026854  10007928   5e-22
 1- 8:  10026855  10007927   3e-101
 1- 9:  10026856  10007925   1e-106
 1- 10:  10026857  10007924    0
 1- 11:  10026858  10007922   9e-123
 1- 12:  10026859  10007921   1e-80
 1- 13:  10026860  10007920   8e-104
 1- 14:  10026862  10007918   4e-25
 1- 15:  10026863  10007917    0
 1- 16:  10026864  10007912   4e-40
 1- 17:  10026865  10007911    0
 1- 18:  10026866  10007910   7e-122
 1- 19:  10026867  10007908   2e-25
 1- 20:  10026868  10007907    0
 1- 21:  10026869  10007905    0
 1- 22:  10026870  10007904   3e-150
 1- 23:  10026871  10007903   5e-77
 1- 24:  10026874  10007901    0
 1- 25:  10026875  10007897    0
 1- 26:  10026876  10007896    0
 1- 27:  10026877  10007894    0
 1- 28:  10026880  10007893   3e-52
 1- 29:  10026881  10007892    0
 1- 30:  10026882  10007891    0
 1- 31:  10026883  10007890    0
 1- 32:  10026886  10007889   1e-50
 1- 33:  10026887  10007888   6e-157
 1- 34:  10026888  10007887    0
 1- 35:  10026889  10007884    0
 1- 36:  10026890  10007883   2e-18
 1- 37:  10026891  10007882   9e-64
 1- 38:  10026892  10007881    0
 1- 39:  10026895  10007880    0
 1- 40:  10026898  10007875    0
 1- 41:  10026900  10007874    0
 1- 42:  10026901  10007873    0
 1- 43:  10026902  10007871   2e-123
 1- 44:  10026903  10007870    0
 1- 45:  10026905  10007869    0
 1- 46:  10026909  10007868   1e-81
## Alignment 2: score=811.0 e_value=3.3e-43 N=17 scaffold1&scaffold111 minus
 2- 0:  10026595  10007449   6e-40
 2- 1:  10026599  10007448   4e-90
 2- 2:  10026600  10007447    0
 2- 3:  10026601  10007444   9e-55
 2- 4:  10026603  10007438   4e-78
 2- 5:  10026604  10007434   9e-122
 2- 6:  10026606  10007432   2e-162
 2- 7:  10026607  10007427    0
 2- 8:  10026608  10007426    0
 2- 9:  10026612  10007417    0
 2- 10:  10026613  10007415   8e-128
 2- 11:  10026614  10007414   3e-64
 2- 12:  10026615  10007409    0
 2- 13:  10026616  10007406    0
 2- 14:  10026617  10007403   1e-171
 2- 15:  10026618  10007402    0
 2- 16:  10026619  10007397   7e-18
........

要求:如果Alignment后面少于20行,把整个的去掉

二、实现方法:

python代码:

#!/usr/bin/python
sum = 0
sumdata = []
FD = open("/root/data.txt","r")
line = FD.readline()
while line:
 if line.find("Alignment") == 3:
 if sum >= 20:
 for i in sumdata:
 print i,
 sum=0
 sumdata=[line]
 else:
 sum = sum + 1
 sumdata.append(line)
 line=FD.readline()
 if len(line) == 0:
 if sum >= 20:
 for i in sumdata:
 print i,

附:

perl代码

#!/usr/bin/perl
open(FD,"/root/data.txt");
while (){
  if ($_ =~ /Alignment/){
    if($sum >= 20){
      print @sumdata;}
    $sum=0;
    @sumdata=($_);}
  else{
    $sum++;
    push(@sumdata,$_);}
}
print @sumdata if $sum >=20;
close(FD);

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python简单商城购物车实例代码
Mar 15 Python
python数字图像处理之骨架提取与分水岭算法
Apr 27 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
Python Numpy计算各类距离的方法
Jul 05 Python
浅析python 中大括号中括号小括号的区分
Jul 29 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
Apr 27 Python
Python获取浏览器窗口句柄过程解析
Jul 25 Python
解决Python安装cryptography报错问题
Sep 03 Python
Python类的继承super相关原理解析
Oct 22 Python
pytorch简介
Nov 11 Python
使用Python开发冰球小游戏
Apr 30 Python
django框架如何集成celery进行开发
May 24 #Python
python 计算两个日期相差多少个月实例代码
May 24 #Python
django基础之数据库操作方法(详解)
May 24 #Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
May 24 #Python
Python生成密码库功能示例
May 23 #Python
Python计算两个日期相差天数的方法示例
May 23 #Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 #Python
You might like
PHP receiveMail实现收邮件功能
2018/04/25 PHP
PHP支付宝当面付2.0代码
2018/12/21 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
javascript设置和获取cookie的方法实例详解
2016/01/05 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
详解前后端分离之VueJS前端
2017/05/24 Javascript
AngularJS中的作用域实例分析
2018/05/16 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
Python中将字典转换为XML以及相关的命名空间解析
2015/10/15 Python
Python中第三方库Requests库的高级用法详解
2017/03/12 Python
解决python nohup linux 后台运行输出的问题
2018/05/11 Python
Python 多维List创建的问题小结
2019/01/18 Python
Python实现合并excel表格的方法分析
2019/04/13 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
Python3的高阶函数map,reduce,filter的示例详解
2019/07/23 Python
python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解
2021/02/25 Python
css3 利用transform打造走动的2D时钟
2020/10/20 HTML / CSS
html5 利用canvas手写签名并保存的实现方法
2018/07/12 HTML / CSS
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
《我要的是葫芦》教学反思
2014/02/23 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
先进个人材料怎么写
2014/12/30 职场文书
教师求职自荐信范文
2015/03/04 职场文书
死者家属慰问信
2015/03/24 职场文书
运动员入场词
2015/07/18 职场文书
幼儿园毕业典礼园长致辞
2015/07/29 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
Pandas-DataFrame知识点汇总
2022/03/16 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android