'r' vs 'rb' in csv (was Re: Python SHA-1 as a method for unique file identification ? [help!])

Mike Orr sluggoster at gmail.com
Mon Jun 26 22:39:22 CEST 2006

Tim Peters wrote:
> [EP <eric.pederson at gmail.com>]
> > This inquiry may either turn out to be about the suitability of the
> > SHA-1 (160 bit digest) for file identification, the sha function in
> > Python ... or about some error in my script
> It's your script.  Always open binary files in binary mode.  It's a
> disaster on Windows if you don't (if you open a file in text mode on
> Windows, the OS pretends that EOF occurs at the first instance of byte
> chr(26) -- this is an ancient Windows behavior that made an odd kind
> of sense in the mists of history, and has persisted in worship of
> Backward Compatibility despite that the original reason for it went
> away _long_ ago).

On a semi-related note, I have a database on Linux that imports from a
Macintosh CSV file.  The 'csv' module says to always open files in
binary mode, but this didn't work in my case: I had to open it as 'rU'
(text with universal newlines) or 'csv' misparsed it.  I'd like the
program to be portable to Windows and Mac.  Is there a way around this?
 Will I really burn in hell for using 'rU'?

What was the odd bit of sense?  I know you end console input by typing
ctrl-Z, but I thought it was just like Unix ctrl-D which ends the input
but doesn't actually insert that character.

Mike Orr <sluggoster at gmail.com>

More information about the Python-list mailing list