Status of side-effecting functions in python

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Oct 27 07:30:57 EDT 2014


Roy Smith wrote:

>> Yes and no. If something goes wrong in a .write() method,
>> is not Python supposed to raise an error? (!)
> 
> Define "wrong".  It is not an error for a write() call to consume fewer
> bytes than were requested.  

It's not? I'm asking a genuine question here, not a rhetorical one. I would
expect that if I ask to write 2 bytes, and only 1 byte is written, that
absolutely is an error. Under what circumstances is it okay for write() to
throw data away?

> How would you expect this to be handled in Python?  Raise
> DataPartiallyWrittenError? 

I would expect it to raise an IOError, most likely with one of the following
error codes:

* errno.EIO (physical input/output error)

* errno.EFBIG (file is too large)

* errno.ENOSPC (no space left on device, disk is full)


-- 
Steven




More information about the Python-list mailing list