的多行字符串我想提取輸入文件中的字符串,如以下:的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