Python-list digest, Vol 1 #12538 - 15 msgs
Frank Gibbons
fgibbons at hms.harvard.edu
Wed Sep 25 09:09:16 EDT 2002
Thanks for the comments, Donn. I was just about to try something like that
myself. The toy example I posted does not do what I really want to, which
is to avoid using a temporary file at all, and echo the output from gzip
directly to the web browser, with appropriate content-type, of course. Your
blocked input/output seems the way to go.
Thanks again,
Frank
At 01:26 AM 9/25/2002, you wrote:
>It isn't going to be fixed, either, because there are just some
>axiomatic truths in operation here, like "I/O buffers aren't
>infinitely elastic." Since your example doesn't do anything with
>the output, you don't have to shoot yourself in the foot this way.
>Try something like this -
>
> zip_input = os.popen('gzip -c > popen.gz', 'w')
> while 1:
> data = f.read(16000)
> if not data:
> break
> zip_input.write(data)
> zip_input.close()
>
>The main point is that this allows gzip to write directly to disk.
>If your actual application needs to process the data further at this
>point, you may read it back from disk and write to a new file if you
>like. Otherwise, if you really want a second pipe, you have to figure
>out how to read some, write some, etc., to keep gzip's output from
>filling up while you're trying to write all its input.
PhD, Computational Biologist,
Harvard Medical School BCMP/SGM-322, 250 Longwood Ave, Boston MA 02115, USA.
Tel: 617-432-3555 Fax:
617-432-3557 http://llama.med.harvard.edu/~fgibbons
More information about the Python-list
mailing list