首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何仅显示前20项

如何仅显示前20项
EN

Stack Overflow用户
提问于 2020-06-13 19:00:03
回答 1查看 66关注 0票数 0

这里的Python代码为我提供了我想要的输出。不过,我需要帮助,将结果限制在前20行。

输入示例如下所示,

gi|170079688|ref|YP_001729008.1|双功能核黄素激酶/FMN腺苷酰转移酶大肠杆菌str.K-12 substr.RNEQRFASLDELKAQIARDELTAREFFGLTKPA gi|170079689|ref|YP_001729009.1| gi|170079689|ref|YP_001729009.1|isoleucyl tRNA合成酶大肠杆菌str.K-12 substr.gi|170079690|ref|YP_001729010.1|脂蛋白信号肽酶大肠杆菌str。K-12 substr.DH10B

代码语言:javascript
复制
import re

id = None
header = None
seq = ''

a_file = open('e_coli.faa')

for line in a_file:
    m = re.match(">(\S+)\s+(.+)", line.rstrip())
    if m:
        if id is not None:

            print("{0} length:{1} {2}".format(id, len(seq),header))

        id, header = m.groups()
        seq = ''
    else:
        seq += line.rstrip()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-13 19:08:46

在最上面添加c = 0。然后,改变

代码语言:javascript
复制
        print("{0} length:{1} {2}".format(id, len(seq),header))

代码语言:javascript
复制
        if c < 10:
            print("{0} length:{1} {2}".format(id, len(seq),header))
            c += 1

有几处调整后的结果:

代码语言:javascript
复制
import re

id = None
header = None
seq = ''

with open('e_coli.faa') as a_file:
    for line in a_file:
        m = re.match(">(\S+)\s+(.+)", line.rstrip())
        if m:
            if id and c < 20:
                print("{0} length:{1} {2}".format(id, len(seq),header))
                c += 1

            id, header = m.groups()
            seq = ''
        else:
            seq += line.rstrip()

读取文件的前20行。您可以使用readlines()

而不是:

代码语言:javascript
复制
for line in a_file:

用途:

代码语言:javascript
复制
for line in a_file.readlines()[:20]:
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62364374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档