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的类实例属性访问规则探讨
Jan 30 Python
详解Python网络爬虫功能的基本写法
Jan 28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
Nov 29 Python
python re模块findall()函数实例解析
Jan 19 Python
TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片
Mar 14 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
python3获取url文件大小示例代码
Sep 18 Python
pytorch三层全连接层实现手写字母识别方式
Jan 14 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
python3 中使用urllib问题以及urllib详解
Aug 03 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
如何解决.cuda()加载用时很长的问题
May 24 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获取表单所有复选框的值的方法
2014/08/28 PHP
Mootools 1.2教程 选项卡效果(Tabs)
2009/09/15 Javascript
div层的移动及性能优化
2010/11/16 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
jquery.validate使用详解
2016/06/02 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
AngularJS基础 ng-href 指令用法
2016/08/01 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
Angular数据绑定机制原理
2018/04/17 Javascript
解决vuejs 使用value in list 循环遍历数组出现警告的问题
2018/09/26 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
2019/04/02 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
Python3中使用PyMongo的方法详解
2017/07/28 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
python、PyTorch图像读取与numpy转换实例
2020/01/13 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
汽车专业毕业生自荐信
2013/11/03 职场文书
大学生饮食连锁店创业计划书
2014/01/17 职场文书
新三好学生主要事迹
2014/01/23 职场文书
学校安全教育制度
2014/01/31 职场文书
社会学专业学生职业规划书
2014/02/07 职场文书
出国留学英文自荐信
2015/03/25 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
排球赛新闻稿
2015/07/17 职场文书
外出考察学习心得体会
2016/01/18 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
Java面试题冲刺第十九天--数据库(4)
2021/08/07 Java/Android