2009-08-03 17 views
21

La función os.write se puede utilizar para escribir bytes en un descriptor de archivo (no en el objeto de archivo). Si ejecuto os.write(fd, '\n'), solo el carácter LF se escribirá en el archivo, incluso en Windows. Me gustaría tener CRLF en el archivo en Windows y solo LF en Linux.
¿Cuál es la mejor manera de lograr esto?¿Cómo escribir el carácter de nueva línea nativa en un descriptor de archivo en Python?

Estoy usando Python 2.6, pero también me pregunto si Python 3 tiene una solución diferente.

+0

'os.write' necesita el FD como su primer argumento - ¡pls corrige esta pregunta! Y no, Python 3 no es esencialmente diferente (excepto que quiere cadenas de bytes, no texto, que siempre es Unicode en Python 3, en llamadas a os.whatever). –

+0

¡Tienes razón, gracias! – hcs42

Respuesta

46

Utilice esta

import os 
os.write(fd, os.linesep) 
8

¿Qué hay de os.write(<file descriptor>, os.linesep)? (import os es innecesario porque parece que ya lo importó; de lo contrario, obtendría errores usando os.write para empezar.)

Cuestiones relacionadas