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 <rep...@bugs.python.org>
<http://bugs.python.org/issue24126>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to