[Biopython] Entrez.read(handle) AND handle.read() on the same handle?
Peter Cock
p.j.a.cock at googlemail.com
Tue Feb 1 23:20:07 UTC 2011
On Tue, Feb 1, 2011 at 11:02 PM, richard k belew <rik at cogsci.ucsd.edu> wrote:
> there must be a simple way to do this, but i've
> not figured it out:
>
> i want to sniff at aspects of a record (using the
> dictionary returned by Entrez.read(handle)) and then
> cache the XML version (returned by handle.read()),
> only if it meets certain criteria. and without
> doing two separate efetch's!
>
> has anyone else bumped into this pattern?
>
> rik
The simplest solution is to use StringIO (or cStringIO) and
cache it all in memory, then parse it:
from StringIO import StringIO
raw_data = efetch(...).read()
record = Entrez.read(String(raw_data))
Peter
More information about the Biopython
mailing list