Python从fi获取特定的行

2024-09-21 03:29:02 发布

您现在位置:Python中文网/ 问答频道 /正文

如何从Python文件中获取特定的行?我知道如何读取文件并将其放入列表等,但这对我来说有点难。让我解释一下我需要什么:

我有一个文件是这样的:

lcl|AF033819.3_cds_AAC82593.1_1 [gene=gag] [protein=Gag] [protein_id=AAC82593.1] [location=336..1838] ATGGGTGCGAGAGCGTCAGTATTAAGCGGGGGAGAATTAGATCGATGGGAAAAAATTCGGTTAAGGCCAG GGGGAAAGAAAAAATATAAATTAAAACATATAGTATGGGCAAGCAGGGAGCTAGAACGATTCGCAGTTAA TCACTCTTTGGCAACGACCCCTCGTCACAATAA lcl|AF033819.3_cds_AAC82598.2_2 [gene=pol] [protein=Pol] [partial=5'] [protein_id=AAC82598.2] [location=<1631..4642] TTTTTTAGGGAAGATCTGGCCTTCCTACAAGGGAAGGCCAGGGAATTTTCTTCAGAGCAGACCAGAGCCA ACAGCCCCACCAGAAGAGAGCTTCAGGTCTGGGGTAGAGACAACAACTCCCCCTCAGAAGCAGGAGCCGA
lcl|AF033819.3_cds_AAC82594.1_3 [gene=vif] [protein=Vif] [protein_id=AAC82594.1] [location=4587..5165] ATGGAAAACAGATGGCAGGTGATGATTGTGTGGCAAGTAGACAGGATGAGGATTAGAACATGGAAAAGTT TAGTAAAACACCATATGTATGTTTCAGGGAAAGCTAGGGGATGGTTTTATAGACATCACTATGAAAGCCC

我需要删除包含以下内容的每一行:

lcl|AF033819.3_cds_AAC82594.1_3 [gene=vif] [protein=Vif] [protein_id=AAC82594.1] [location=4587..5165]

所有的信件我需要存储在一个列表,文件等,我知道如何工作。有人能帮我用Python编写代码吗?如何仅删除包含以下内容的行:

lcl


Tags: 文件id列表locationgenecdsvifprotein
2条回答

为什么不使用startswith()?在

with open('lcl.txt', 'r') as f:
    for line in f.readlines():
        if line.startswith("lcl|"):
            print ("lcl line dropping it")
            continue
        else:
            print (line)

结果:

^{pr2}$

注意:我假设这里的正确位置有换行符!在

答案是使用regular expressions。会是这样的:

>>> import re
>>> a = 'beginlcl|AF033819.3_cds_AAC82593.1_1 [gene=gag] [protein=Gag] [protein_id=AAC82593.1] [location=336..1838]end'
>>> re.sub('lcl.*?location.*?\]', '', a)
'beginend'

相关问题 更多 >

    热门问题