python 代码 目的:根据关键词提取前后行内容

img

根据第一个关键词“ACATGCGT”提取所在的行,以及提取包含是第一个@开始,下一个@之前内的内容,写入一个文件;随后根据第二个关键词“AGCCTTAG”,提取内容同上,再写入另一个文件,其余不包含第一二个关键词的的写入另一个文件,折腾了好久,还是没法实现,各种报错,能麻烦大家指教一下吗?

【有帮助请采纳】

inputfile = input('输入文件路径:')#此处输入绝对路径
inlist = []
with open(inputfile,'r') as file:
    file = file.readlines()
    for line in file:inlist.append(line)

def func1():
    with open('out1.txt','w') as outfile1:
        with open('out3.txt','w') as outfile3:
            for lines in inlist:
                if 'ACATGCGT' in lines:outfile1.write(lines)
                if 'AGCCTTAG' in lines:outfile1.write(lines)
                else:outfile3.write(lines)

def func2(n=0):
    with open('out2.txt','w') as outfile2:
        while n < len(inlist):
            if inlist[n][0]=='@':
                while 1:
                    outfile2.write(inlist[n].strip('@'))
                    n +=1
                    if n == len(inlist):break
                    if inlist[n][0]=='@':break
            n +=1

func1()
func2()

【有帮助请采纳】

先理一下需求逻辑:

文件不大的话,全部读到内存中,
按@ split 到列表,
遍历列表
if 发现 “ACATGCGT”
写入第一个文件
elif 发现 “AGCCTTAG”
写入第二个文件
else:
写入第三个文件