|
Event-driven parsers
Why a SeqRecord?
def parse(input, handler):
for line in input:
handler.process_line(line[:2], line)
return handler.get_record()
parse(open(filename), BuildSeqRecord())
class BuildSeqRecord:
def __init__(self):
self.accessions = []
def process_line(self, tag, line):
if tag == "AC":
words = line.replace(";", " ").split()
self.accessions.extend(words[1:])
return
def get_record(self):
return SeqRecord(...
accessions = accession,
...)
|
|