Я хотел бы, чтобы извлечь строки из входного файла, как показано ниже:Python Извлечение строк из нескольких строк строк
>a11
UCUUUGGUUAUCUAGCUGUAUGA
>a11
UCUUUGGUUAUCUAGCUGUAUGA
>b22
UGGUCGACCAGUUGGAAAGUAAU
>b22
ACUUCACCUGGUCCACUAGCCGU
>b22
AGGUUGUCUGUGAUGAGUUCG
>t33
UUAAUGCUAAUCGUGAUAGGGGU
>t33
CAGUAACAAAGAUUCAUCCUUGU
Линия начинается с «>» это заголовок и ниже линии последовательности.
Я хотел бы, чтобы извлечь последовательности с заголовком страта только с «> 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