Python doc problems example: gzip module

X

Xah Lee

today i need to use Python to decompress gzip files.

since i'm familiar with Python doc and have 10 years of computing
experience with 4 years in unix admin and perl, i have quickly located
the official doc:

http://python.org/doc/2.4.1/lib/module-gzip.html

but after a minute of scanning, please someone tell me what the **** is
it talking about?

**** the Python programing morons.

Thanks.

I just need to decompress files. Is it:

import gzip;
gzip.GzipFile("/Users/xah/access_log.1.gz");

can someone put a example into that fucking doc so that people don't
have to wade thru whatever **** it is trying to sound big?

For more about Python doc, please see:
http://xahlee.org/perl-python/re-write_notes.html

Xah
(e-mail address removed)
∑ http://xahlee.org/
 
X

Xah Lee

Today i need to use Python to compress/decompress gzip files.

I quickly found the official doc:
http://python.org/doc/2.4.1/lib/module-gzip.html

I'd imagine it being a function something like
GzipFile(filePath, comprress/decompress, outputPath)

however, scanning the doc after 20 seconds there's no single example
showing how it is used.

Instead, the doc starts with some arcane info about compatibility with
some zlib module and other software.

Then it talks in a very big computer sciency way with bad writing about
the main function GzipFile. No perspectives whatsoever about using it
to solve a problem nor a concrete description of how it functions.
Instead, jargons of Class, Constructor, Object etc are thrown together
with presumption of reader's expertise of Python's file objects and
gzip technical details.

after no understanding, and being not a Python expert, i wanted to read
about file objects but there's no link.

after locating the file object doc page
http://python.org/doc/2.4.1/lib/bltin-file-objects.html
itself talks in some obfuscated incomprehensible way.

---------------
Here's the detail of the GzipFile description:

class GzipFile( [filename[, mode[, compresslevel[, fileobj]]]])
Constructor for the GzipFile class, which simulates most of the methods
of a file object, with the exception of the readinto() and truncate()
methods. At least one of fileobj and filename must be given a
non-trivial value.
The new class instance is based on fileobj, which can be a regular
file, a StringIO object, or any other object which simulates a file. It
defaults to None, in which case filename is opened to provide a file
object.

yeah, blab blab blab. what the **** are you talking about? So, how to
use it?

When fileobj is not None, the filename argument is only used to be
included in the gzip file header, which may includes the original
filename of the uncompressed file. It defaults to the filename of
fileobj, if discernible; otherwise, it defaults to the empty string,
and in this case the original filename is not included in the header.

what the ****??

The mode argument can be any of 'r', 'rb', 'a', 'ab', 'w', or 'wb',
depending on whether the file will be read or written. The default is
the mode of fileobj if discernible; otherwise, the default is 'rb'. If
not given, the 'b' flag will be added to the mode to ensure the file is
opened in binary mode for cross-platform portability.

discernible? so, what the **** are exactly these modes? can't you
describe them concretely?

The compresslevel argument is an integer from 1 to 9 controlling the
level of compression; 1 is fastest and produces the least compression,
and 9 is slowest and produces the most compression. The default is 9.

Calling a GzipFile object's close() method does not close fileobj,
since you might wish to append more material after the compressed data.
This also allows you to pass a StringIO object opened for writing as
fileobj, and retrieve the resulting memory buffer using the StringIO
object's getvalue() method.

huh? append more material? pass a StringIO? and memory buffer?

--------------------
Motherfucking 90% of programers using this module really just want to
compress or decompress a file.

**** unix advocates and **** Perlers and **** Python morons.

PS For more about Python doc, please see:
http://xahlee.org/perl-python/re-write_notes.html

Xah
(e-mail address removed)
∑ http://xahlee.org/
 
P

Peter Maas

Xah said:
today i need to use Python to decompress gzip files.

since i'm familiar with Python doc and have 10 years of computing
experience with 4 years in unix admin and perl, i have quickly located
the official doc:

http://python.org/doc/2.4.1/lib/module-gzip.html

but after a minute of scanning, please someone tell me what the **** is
it talking about?

**** the Python programing morons.

Thanks.

I just need to decompress files. Is it:

import gzip;
gzip.GzipFile("/Users/xah/access_log.1.gz");

can someone put a example into that fucking doc so that people don't
have to wade thru whatever **** it is trying to sound big?

Here's the example:
import gzip

# read fucked
fuckedfile = gzip.GzipFile('somefile.gz')
content = fuckedfile.read()
fuckedfile.close()

# write unfucked
unfuckedfile = file('somefile','w')
unfuckedfile.write(content)
unfuckedfile.close()

Please feel free to insert this fucking example into the fucking docs.

Have a nice ... eh fucking day :)
 
S

Sybren Stuvel

Xah Lee enlightened us with:
but after a minute of scanning, please someone tell me what the ****
is it talking about?

How difficult is it? The first line of the Gzip class explains it all
to me: "Constructor for the GzipFile class, which simulates most of
the methods of a file object"

Sybren
 
P

Peter Wang

Constructor for the GzipFile class, which simulates most of the methods
yeah, blab blab blab. what the **** are you talking about? So, how to
use it?

um... presumably you type "zippedfile = GzipFile(...)" and depending on
whether you are creating a new file, or extracting an existing
GzipFile. the documentation says:
The new class instance is based on fileobj, which can be a regular file, a
StringIO object, or any other object which simulates a file. It defaults to
None, in which case filename is opened to provide a file object."

so i guess in your case you would want to do "zippedfile =
GzipFile("myfile.gz")".
what the ****??

when you "gzip -d myfile.gz", the resultant output name might not be
"myfile". The uncompressed name can be stored in the gzip header, and
so if you provide both a fileobj argument and a filename argument to
the GzipFile constructor, it will use fileobj for the data stream and
just place filename into the header (as opposed to opening the file
"filename").
discernible? so, what the **** are exactly these modes? can't you
describe them concretely?

these are the same modes that are used in just about every single
programming language when it comes to opening files. these modes are
described in the Python tutorial and in the core Python documentation
about files and file I/O. It should not be surprising, therefore, that
GzipFile, which "simulates most of the methods of a file object",
should have the same semantics when it comes to file modes.

it is actually quite shocking to me that someone with 10 years of
computing experience would not know what "rb" and "rb" mean in the
context of opening files in a programming language.
huh? append more material? pass a StringIO? and memory buffer?

you see, not everyone who uses GzipFile will be decompressing files.
sometimes they will be *compressing* file data. in this case, it's
very possible that they want to compress data going over a network
stream, or embed some gzipped into the middle of their own file format.
GzipFile doesn't make any assumptions about what the user is going to
do with the gzipped data or the file object that the Gzip module is
writing into/reading from.
Motherfucking 90% of programers using this module really just want to
compress or decompress a file.

I disagree. I think a whopping (non-motherfucking) 100% of programmers
using this module want to compress or decompress file data. If someone
just wants to decompress a file, wouldn't they just do:

import os
os.system("gzip -d filename.gz")

The GzipFile module is meant to be used by folks who want to gzip or
gunzip file data in a programmatic function. It's not meant to be a
drop-in, shell-scripting replacement for the gzip command.

-peter
 
G

Guest

you see, not everyone who uses GzipFile will be decompressing files.

Am I the only one who thinks you are talking with some perverted kind of
emacs-doctor-like or elise-like computer program?
 
P

plainsane

Peter said:
Here's the example:
import gzip

# read fucked
fuckedfile = gzip.GzipFile('somefile.gz')
content = fuckedfile.read()
fuckedfile.close()

# write unfucked
unfuckedfile = file('somefile','w')
unfuckedfile.write(content)
unfuckedfile.close()

Please feel free to insert this fucking example into the fucking docs.

Have a nice ... eh fucking day :)

--

yes yes yes, i love this "fucking" post...nice "fucking" response
man!!!!
 
P

pspierce

Peter said:
Here's the example:
import gzip

# read fucked
fuckedfile = gzip.GzipFile('somefile.gz')
content = fuckedfile.read()
fuckedfile.close()

# write unfucked
unfuckedfile = file('somefile','w')
unfuckedfile.write(content)
unfuckedfile.close()

Please feel free to insert this fucking example into the fucking docs.

Have a nice ... eh fucking day :)

--

The word has now completely lost any meaning for me.
 
E

EP

Xah Lee said:
today i need to <snip> decompress
since i'm familiar with <snip>

<snip> what the ****
**** the <snip>
I just need to decompress <snip>

<snip> that fucking doc
<snip> whatever ****



Is it just me or, do you suppose, with so much unnecessary "f" word, this is not a post at all, but a cleverly encoded message to fellow unsavory characters. The "f"'s are just enough to thwart (ahem,lesser!) intellects from critically analyzing the text. And as far as I can tell, there was no real content in the post.

Could the position of the f words be the key to the encrypted message?

I need to enlist the help of smarter minds to decode the message - I have zero experience in this, but I am sure there are minds bright enough on this list to crack the XL posts.


Here's all I could get going, trying to see if there was something in the name itself (but clearly the below is kindergarten level, at best)

newName="".join([chr(ord(c)+ offset -(26*((ord(c)+offset)>122))) for c in name])
if p==1:
print newName
return newName
nn=fName(name,i)


xahlee
ybimff
zcjngg
adkohh
belpii
cfmqjj
dgnrkk
ehosll
fiptmm
gjqunn
hkrvoo
ilswpp
jmtxqq
knuyrr
lovzss
mpwatt
nqxbuu
orycvv
pszdww
qtaexx
rubfyy
svcgzz
twdhaa
uxeibb
vyfjcc
wzgkdd

Certainly this one caught my eye ("rubfyy") - Ruby with the f-you acronym inside it!


Sorry, folks, its been a long week and I need to decompress.



EP
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,904
Latest member
HealthyVisionsCBDPrice

Latest Threads

Top