我有一个大的文本文件,它的行是用这种格式组成的:
Query: 1586 cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc 1645
Sbjct: 27455708 cccaagatgagctgcagccccccagagagagctctgcacgtcaccaagtaaccaggcccc 27455649
Query: 1646 agcctccaggcccccaactccgcccagcctctccccgctctggatcctgcactctaacac 1705
Sbjct: 27455648 agcctccaggcccccaactccgcccagcctctccccgctctggatcctgcactctaacac 27455589
Query: 1706 tcgactctgctgctcatgggaagaacagaattgctcctgcatgcaactaattcaataaaa 1765
Sbjct: 27455588 tcgactctgctgctcatgggaagaacagaattgctcctgcatgcaactaattcaataaaa 27455529
对于每一行,我希望能够只提取agtc的不同序列,同时删除其他字符(query、sbjct和variating numbers),这样最终的字符串将如下所示
^{2}$我已经做了一段时间了,但没法用。我尝试过re模块和.translate
,但没有结果。我用python3.4编程。谢谢您!在
虽然您可以使用正则表达式(如您所尝试的那样),但是您提供的示例可以通过使用
agtc_part = line.split()[2]
轻松地拆分这会将一个给定的行拆分为一个字符串列表,其中分隔符是一个空格。索引从0开始,因此带有
agct
的部分由2索引。在注意,调用
split()
而不显式地传递一个参数来指示要拆分的字符,不仅会对空格字符进行拆分,而且还会将连续的空格组合在一起,而不是对每个空格进行拆分。这在您的情况下很重要,因为数字和agct字符串之间的空白字符数不同。在示例:
相关问题 更多 >
编程相关推荐