的多行字符串我想提取输入文件中的字符串,如以下:的Python提取从字符串
>a11
UCUUUGGUUAUCUAGCUGUAUGA
>a11
UCUUUGGUUAUCUAGCUGUAUGA
>b22
UGGUCGACCAGUUGGAAAGUAAU
>b22
ACUUCACCUGGUCCACUAGCCGU
>b22
AGGUUGUCUGUGAUGAGUUCG
>t33
UUAAUGCUAAUCGUGAUAGGGGU
>t33
CAGUAACAAAGAUUCAUCCUUGU
线与“>”是一个标头和下面的行是一个序列开始。
我想提取与报头中的序列只能用strats“> B22”
这是我的代码不给properl答案。
def extractData():
filename = ("data.txt")
infile = open(filename,'r')
for x in infile.readlines():
x = x.strip()
if x.startswith(">"):
header = x
else:
sequence = x
if header.startswith(">b22"):
print(header, sequence)
infile.close()
extractData()
它给人造成这样的:
>b22 UCUUUGGUUAUCUAGCUGUAUGA
>b22 UGGUCGACCAGUUGGAAAGUAAU
>b22 UGGUCGACCAGUUGGAAAGUAAU
>b22 ACUUCACCUGGUCCACUAGCCGU
>b22 ACUUCACCUGGUCCACUAGCCGU
>b22 AGGUUGUCUGUGAUGAGUUCG
但是,我的预期的结果是这样的:
>b22 UGGUCGACCAGUUGGAAAGUAAU
>b22 ACUUCACCUGGUCCACUAGCCGU
>b22 AGGUUGUCUGUGAUGAGUUCG
有人可以解决这个问题吗?什么是问题,我应该暗示要得到正确的结果?
很好,但它不适用于'header ='''这一行。如果我删除它,那么它就可以工作。为什么要让标题为空?谢谢@chandan – Karyo
修复了这个问题。一旦头被用于序列,即'print(header,sequence)',那么将它设置为空字符串应该是安全的。 – Chandan