[New-bugs-announce] [issue24126] newlines attribute does not get set after calling readline()

Davide Mancusi report at bugs.python.org
Tue May 5 11:21:48 CEST 2015


New submission from Davide Mancusi:

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.

----------
components: IO
messages: 242593
nosy: arekfu
priority: normal
severity: normal
status: open
title: newlines attribute does not get set after calling readline()
type: behavior
versions: Python 2.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue24126>
_______________________________________


More information about the New-bugs-announce mailing list