This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author arekfu
Recipients arekfu
Date 2015-05-05.09:21:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1430817708.97.0.91476502488.issue24126@psf.upfronthosting.co.za>
In-reply-to
Content
I have a text file with Windows-style line terminators (\r\n) which I open in universal newlines mode. I would expect the newlines attribute to be set after the first call to the readline() method, but apparently this is not the case:

>>> f=open('test_crlf', 'rU')
>>> f.newlines
>>> f.readline()
'foo\n'
>>> f.newlines
>>> f.readline()
'bar\n'
>>> f.newlines
'\r\n'

On the other hand, the newlines attribute gets set after the first call to readline() on a file with Unix-style line endings.

Also, surprisingly, calling tell() after the first readline() is enough to update the newlines attribute:

>>> f=open('test_crlf', 'rU')
>>> f.newlines
>>> f.readline()
'foo\n'
>>> f.newlines
>>> f.tell()
77
>>> f.newlines
'\r\n'

Are these behaviours intended? If so, they should probably be documented.
History
Date User Action Args
2015-05-05 09:21:49arekfusetrecipients: + arekfu
2015-05-05 09:21:48arekfusetmessageid: <1430817708.97.0.91476502488.issue24126@psf.upfronthosting.co.za>
2015-05-05 09:21:48arekfulinkissue24126 messages
2015-05-05 09:21:48arekfucreate