首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >有条件地读取python中的文件内容

有条件地读取python中的文件内容
EN

Stack Overflow用户
提问于 2022-01-30 19:06:54
回答 2查看 51关注 0票数 -3

我试图从蟒蛇的基因组文件中读取一个染色体序列。基因组文件的格式如下所示,但每条染色体都有更多的序列:

Chr1

ATCGTGTGATGGTGCGTAGATGCTGAT

GCTGATGTGTCGAGCGATGCTGAGTCG

Chr2

TGCGTGATGCTGAGCGATGCTGATGCT

TAGCTGACCACACACCTGTTTTGTAGG

Chr3

GGTTGGTTGGCGGACCACCATTACTAT

我使用下面的代码读取整个基因组序列。然而,我只想要一个染色体的序列(例如Chr2的整个序列)。与其阅读整个基因组,然后搜索Chr2的模式,我还有其他方法可以做到这一点吗?

谢谢

代码语言:javascript
运行
复制
   with open("genome.txt") as f:
       for line in f:
           genome.append(line.rstrip())
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-30 19:25:23

打开文件,逐行读取,直到找到“Chr2 2”为止。

使用所有非空行,直到到达EOF或以“Chr”开头的任何行为止。

代码语言:javascript
运行
复制
def getgenomes(gfile):
    g = []
    for line in gfile:
        if line.startswith('Chr'):
            break
        if (line := line.strip()):
            g.append(line)
    return g

with open('genome.txt', encoding='utf-8') as gfile:
    genomes = None
    for line in gfile:
        if line.startswith('Chr2'):
            genomes = getgenomes(gfile)
            break
    print(genomes)

输出:

代码语言:javascript
运行
复制
['TGCGTGATGCTGAGCGATGCTGATGCT', 'TAGCTGACCACACACCTGTTTTGTAGG']
票数 0
EN

Stack Overflow用户

发布于 2022-01-30 19:26:32

代码语言:javascript
运行
复制
Is_Chr2 = False

with open("genome.txt") as f:
   for line in f:
       if Is_Chr2: genome.append(line.rstrip())
       if line.rstrip() == "Chr2": Is_Chr2 = True
       else if line.rstrip()[:2] == "Chr" and Is_Chr2: break
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70917980

复制
相关文章

相似问题

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