[IronPython] Reading Text files with open

John Messerly jomes at microsoft.com
Tue Jun 12 02:06:40 CEST 2007


Actually, it's a result of System.Text.ASCIIEncoding, which replaces bytes greater than 0x7f with a question mark. I filed this as CodePlex work item #10983 (http://www.codeplex.com/IronPython/WorkItem/View.aspx?WorkItemId=10983).

Thanks,

John

-----Original Message-----
From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of Michael Foord
Sent: Monday, June 11, 2007 4:04 PM
To: Discussion of IronPython
Subject: [IronPython] Reading Text files with open

Hello all,

If I create a file with the following code:

open(r'c:\temp\test.txt', 'w').write('\xa33')

And then read it in using the Python 'open', I get different results
with Python and IronPython:

CPython 2.4.4:

 >>> data = open(r'c:\temp\test.txt').read()
 >>> data
'\xa33'
 >>> ord(data[0])
163

IronPython 1.1:

 >>> data = open(r'c:\temp\test.txt').read()
 >>> data
'?3'
 >>> ord(data[0])
63

If I use the 'rb' flag with IronPython then the right thing happens, but
this isn't binary data...

Is there any way round this - I guess it is a consequence of .NET strings.

Michael



More information about the Ironpython-users mailing list