Eryk Sun <[email protected]> added the comment:
> like those returned by the open() function. Their parameters are
> chosen as follows..."
The `newline` argument for sys.std* isn't documented, but it should be. It
happens to be newline='\n' on every platform except Windows.
> its newlines attribute is set to None
The `newlines` attribute is based on the `newlines` attribute of the
incremental decoder. It defaults to None if the decoder lacks this attribute.
AFAIK, only the universal newlines decoder, io.IncrementalNewlineDecoder,
implements this attribute. If it's not None, the value is a string or tuple
that tracks the types of newlines that have been seen thus far. For example:
>>> fdr, fdw = os.pipe()
>>> f = open(fdr, 'r', newline=None, closefd=False)
>>> os.write(fdw, b'a\r\n')
3
>>> f.readline()
'a\n'
>>> f.newlines
'\r\n'
>>> os.write(fdw, b'a\n')
2
>>> f.readline()
'a\n'
>>> f.newlines
('\n', '\r\n')
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45617>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com