删除字符串中的字符

2024-10-01 00:28:20 发布

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

我有一个fasta文件,它的头不包括序列名和长度

>1 9081 bp 
gcgcccgaacagggacttgaaagcgaaagagaaaccagagaagctctctcgacgcagga

我需要删除名称“1”之后的所有内容,并尝试在python中通过以下方式执行此操作:

newfile.write(oldfile.replace("bp",""))

这删除了“bp”,但我现在仍然有数字。你知道吗

>1 9081
gcgcccgaacagggacttgaaagcgaaagagaaaccagagaagctctctcgacgcagga

我如何指定这个术语:任何字符后跟bp将被替换为nothing。我试过***血压或---血压或…血压,但都不起作用。你知道吗

谢谢! 拉德瓦


Tags: 文件名称内容方式序列数字replacefasta
1条回答
网友
1楼 · 发布于 2024-10-01 00:28:20

为此,应该使用正则表达式。你知道吗

尝试此操作(假设文件名可能包含1个以上的字符,并且可能包含数字和字母):

import re

regex = re.compile(r'(^\w+)\s.*', re.DOTALL)
print(regex.sub(r'\1', '1 9081 bp\ngcgcccgaacagggacttgaaagcgaaagagaaaccagagaagctctctcgacgcagga' ))
print(regex.sub(r'\1', 's12d 9081 bp\ngcgcccgaacagggacttgaaagcgaaagagaaaccagagaagctctctcgacgcagga' ))

输出:

1 
s12d

相关问题 更多 >