How to write native newline character to a file descriptor in Python?
Question:
The os.write
function can be used to writes bytes into a file descriptor (not file object). If I execute os.write(fd, 'n')
, only the LF character will be written into the file, even on Windows. I would like to have CRLF in the file on Windows and only LF in Linux.
What is the best way to achieve this?
I’m using Python 2.6, but I’m also wondering if Python 3 has a different solution.
Answers:
Use this
import os
os.write(fd, os.linesep)
How about os.write(<file descriptor>, os.linesep)
? (import os
is unnecessary because you seem to have already imported it, otherwise you’d be getting errors using os.write
to begin with.)
The os.write
function can be used to writes bytes into a file descriptor (not file object). If I execute os.write(fd, 'n')
, only the LF character will be written into the file, even on Windows. I would like to have CRLF in the file on Windows and only LF in Linux.
What is the best way to achieve this?
I’m using Python 2.6, but I’m also wondering if Python 3 has a different solution.
Use this
import os
os.write(fd, os.linesep)
How about os.write(<file descriptor>, os.linesep)
? (import os
is unnecessary because you seem to have already imported it, otherwise you’d be getting errors using os.write
to begin with.)