首页 > 解决方案 > 如何在带有空格的单词之后获取序列

问题描述

对于学校,我必须在一个带有很多空格的单词之后解析一个字符串,但我就是无法理解。因为文件是基因库。

例如:

BLA                                                                                                             
      1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
      2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
      3 kahsfkjshakjfhksjhfkskjfkaskfksj

//

我试过的是这个。

if line.startswith("BLA"):

       start = line.find("BLA")
       end = line.find("//")
       line = line[:end]
       s_string = ""
       string = list()
       if s_string:
           string.append(line)


        else:
            line = line.strip()
            my_seq += line

但我得到的是:

**output**
BLA

这是它得到的唯一东西,我想让输出像

**output**
BLA 1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
    2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
    3 kahsfkjshakjfhksjhfkskjfkaskfksj

所以我不知道该怎么做,我试图让它像最后一个输出一样。但没有成功。我的老师告诉我,我必须这样做。如果 BLA 是 True 你可以去迭代它。如果你看到“//”,你必须停下来,但是当我用那个 True - 语句尝试它时,我什么也没得到。

我试图在网上搜索它,它说我必须用 bio seqIO 来做。但是老师说我们不能用那个。

标签: pythonstringparsingbioinformaticsgenbank

解决方案


这是我的解决方案:

lines = """BLA
  1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
  2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
  3 kahsfkjshakjfhksjhfkskjfkaskfksj

//"""

lines = lines.strip().split("//")
lines = lines[0].split("BLA")
lines = [i.strip() for i in lines]
print("BLA", " ", lines[1])

输出:

BLA   1 sjafhkashfjhsjfhkjsfkjakshfkjsjkf
      2 isfshkdfhjksfkhksfhjkshkfhkjsakjfhk
      3 kahsfkjshakjfhksjhfkskjfkaskfksj

推荐阅读