On 22Jul2008 20:56, John J Lee <jjl@pobox.com> wrote:
On Tue, 22 Jul 2008, Cameron Simpson wrote: [...]
Leaving aside the 0.2 => 0 converstion, shouldn't read() raise an exception if asked for < 1 bytes? Or is there a legitimate use for read(0) with which I was not previously aware?
http://docs.python.org/lib/bltin-file-objects.html
read([size])
... If the size argument is negative or omitted, read all data until EOF is reached. ...
Hmm, yeah, but 0 is not negative and not omitted so this does not apply. Personally I'm not very fond of that spec; I'm good with the omitted size provoking a "read everything" mode but I'd rather a non-numeric value like None rather than a negative one (eg the conventional "def read(size=None)") if an explicit size should do so. That way bad arithmetic in the caller could have a chance of triggering an exception from read instead of a silent (and to my taste, nasty) "slurp the file" mode. -- Cameron Simpson <cs@zip.com.au> DoD#743 http://www.cskk.ezoshosting.com/cs/