我有一个大文本文件,其中的行以这种格式组成:
Query: 1586 cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc 1645
Sbjct: 27455708 cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc 27455649
Query: 1646 agcctccaggcccccaactccgcccagcctctccccgctctggatcctgcactctaacac 1705
Sbjct: 27455648 agcctccaggcccccaactccgcccagcctctccccgctctggatcctgcactctaacac 27455589
Query: 1706 tcgactctgctgctcatgggaagaacagaattgctcctgcatgcaactaattcaataaaa 1765
Sbjct: 27455588 tcgactctgctgctcatgggaagaacagaattgctcctgcatgcaactaattcaataaaa 27455529
对于每一行,我希望能够在删除其他字符(查询,sbjct和变量数字)时仅提取不同的agtc序列,以便最终字符串看起来像这样
line1 = cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc
line2 = cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc
etc...
我已经在这方面工作了一段时间而无法让它发挥作用。我已尝试过re模块和.translate
但未尝试结果。我在python 3.4编程。谢谢!
答案 0 :(得分:3)
虽然您可以使用正则表达式(就像您尝试过的那样),但您可以使用agtc_part = line.split()[2]
这会将给定的行拆分为字符串列表,其中分隔符是空格。索引从0开始,因此agct
in的部分被索引为2。
请注意,调用split()
而不显式传入指示要拆分的字符的参数,不仅要拆分空格字符,还要将连续空格组合在一起而不是在每个空格上拆分。这在您的情况下很重要,因为您在数字和agct字符串之间有不同数量的空格字符。
示例:
>>> "aaa bbb".split()
['aaa', 'bbb']
>>> "aaa bbb".split(' ')
['aaa', '', '', 'bbb']