如何从文本文件的行中提取唯一的字符串?

2024-05-13 18:09:54 发布

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

我有一个大的文本文件,它的行是用这种格式组成的:

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编程。谢谢您!在


Tags: 字符串格式序列query字符文本文件numbersagtc
1条回答
网友
1楼 · 发布于 2024-05-13 18:09:54

虽然您可以使用正则表达式(如您所尝试的那样),但是您提供的示例可以通过使用agtc_part = line.split()[2]轻松地拆分

这会将一个给定的行拆分为一个字符串列表,其中分隔符是一个空格。索引从0开始,因此带有agct的部分由2索引。在

注意,调用split()而不显式地传递一个参数来指示要拆分的字符,不仅会对空格字符进行拆分,而且还会将连续的空格组合在一起,而不是对每个空格进行拆分。这在您的情况下很重要,因为数字和agct字符串之间的空白字符数不同。在

示例:

>>> "aaa   bbb".split()
['aaa', 'bbb']
>>> "aaa   bbb".split(' ')
['aaa', '', '', 'bbb']

相关问题 更多 >