[Python-Dev] open(): set the default encoding to 'utf-8' in Python 3.3?

Terry Reedy tjreedy at udel.edu
Tue Jun 28 18:34:56 CEST 2011

On 6/28/2011 10:48 AM, Michael Foord wrote:
> On 28/06/2011 15:36, Terry Reedy wrote:

>> S = open('myfile.txt').read()
>> now return a text string in both Py2 and Py3 and a subsequent
>> 'abc' in S
>> works in both.
> Nope, it returns a bytestring in Python 2.

Which, in Py2 is a str() object. In both Pythons, .read() in default 
mode returns an object of type str() and 'abc' is an object of type 
str() and so expressions involving undecorated string literals and input 
just work, but would not work if input defaulted to bytes in Py 3. Sorry 
if I was not clear enough.

Terry Jan Reedy

More information about the Python-Dev mailing list