gzip.GzipFile (was Re: Don't you just love writing this sort of thing :))
Jorgen Grahn
grahn+nntp at snipabacken.se
Tue Dec 9 03:39:43 EST 2008
On Mon, 08 Dec 2008 14:21:40 +0000, MRAB <google at mrabarnett.plus.com> wrote:
> Jorgen Grahn wrote:
>> On Sat, 06 Dec 2008 10:01:10 +0000, Arnaud Delobelle <arnodel at googlemail.com> wrote:
>>
>> ...
>>> Why use (open, gzp.GzipFile)[Entry.endswith(".gz")] when we have had
>>> contitional expressions for a few years now? Instead, you can write
>>>
>>> (gzip.GzipFile if entry.endswidth(".gz") else open).
>>>
>>> I think it will be faster (as it doesn't require the construction of a
>>> tuple and then the retrieval of one of its elements) and clearer.
>>
>> Even clearer would be if gzip.Gzipfile could (optionally) read
>> non-gzipped files and file-like objects, like the gzip Unix commands
>> zcat -f, zgrep and so on.
...
> gzip is for reading gzipped files. IMHO it would be better to have a
> de-archive module which uses the gzip, tarfile, etc, modules as necessary.
Not tarfile, since that's usually a container for many files.
But ok, maybe you are right about placing it in a different module
-- even though it's fairly common for Unix application to accept plain
files, gzipped files and nothing else.
Note that such a module should handle reading sys.stdin and other
non-disk files. That's a bit tricky, because when you realize that you
guessed wrong on the format, you have already consumed and discarded
some of the data.
I started looking at such a module a year ago, but never finished it.
/Jorgen
--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.se> R'lyeh wgah'nagl fhtagn!
More information about the Python-list
mailing list