Python中文
首页
教程
问答
标签
搜索
登录
注册
基于模式删除文件中的重复行
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我试图找到一个很好的方法来实现这一点,但不幸的是,我没有找到一个。你知道吗</p> <p>我正在处理以下格式的文件:</p> <blockquote> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22491.xml;spectrum=1074 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=2950 true </p> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=1876 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3479 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3785 true</p> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=473 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=473 true</p> </blockquote> <p>正如您所看到的,每个规范行都是不同的,除了最后一行,其中字符串谱的编号是重复的。 我想做的是获取模式<code>=Cluster=</code>之间的每个信息块,并检查是否有谱值重复的行。如果有多行重复,则删除除一行之外的所有行。你知道吗</p> <p>输出文件应如下所示:</p> <blockquote> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22491.xml;spectrum=1074 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=2950 true </p> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=1876 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3479 true<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22498.xml;spectrum=3785 true</p> <p>=Cluster=<br/> SPEC PRD000681;PRIDE_Exp_Complete_Ac_22493.xml;spectrum=473 true </p> </blockquote> <p>我用这个来分割文件使用的模式,但我不知道如何检查是否有重复频谱。你知道吗</p> <pre><code>#!/usr/bin/perl undef $/; $_ = <>; $n = 0; for $match (split(/(?==Cluster=)/)) { open(O, '>temp' . ++$n); print O $match; close(O); } </code></pre> <p>PD:我使用Perl是因为它对我来说更容易,但我也理解python。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果重复行是连续的,则可以使用以下perl oneliner:</p> <pre><code>perl -ani.back -e 'next if defined($p) && $_ eq $p;$p=$_;print' file.txt </code></pre> <p>原始文件是扩展名为<code>.back</code>的备份</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
7 回答
无法使用Django\u mssql\u后端迁移到外部hos
4 回答
无法使用Django&Python3.4连接到MySql
2 回答
无法使用Django+nginx上载媒体文件
7 回答
无法使用Django1.6导入名称模式
5 回答
无法使用Django1.7和mongodb登录管理站点
7 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
6 回答
无法使用Djangockedi验证CBV中的字段
6 回答
无法使用Djangocketditor上载图像(错误400)
3 回答
无法使用Djangocron进行函数调用
6 回答
无法使用Djangofiler djang上载文件
1 回答
无法使用Djangokronos
6 回答
无法使用Djangomssql provid
3 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
3 回答
无法使用Djangomssq迁移Django数据库
4 回答
无法使用Djangonox创建用户
8 回答
无法使用Djangopyodb从Django查询SQL Server
4 回答
无法使用Djangopython3ldap连接到ldap
2 回答
无法使用Djangoredis连接到redis
8 回答
无法使用Django中的FK创建新表
1 回答