interprete ejecutar desde consola python newline

ejecutar - Cómo escribir caracteres de final de línea de Unix en Windows usando Python



ejecutar.py desde consola python (3)

¿Cómo puedo escribir en archivos usando Python (en Windows) y usar el carácter de final de línea de Unix?

Por ejemplo, al hacer:

f = open(''file.txt'', ''w'') f.write(''hello/n'') f.close()

Python reemplaza automáticamente / n con / r / n.


La forma moderna: use newline = ''''

Use el parámetro newline= keyword para io.open() para usar los terminadores de fin de línea LF de estilo Unix:

import io f = io.open(''file.txt'', ''w'', newline=''/n'')

Esto funciona en Python 2.6+. En Python 3 también puedes usar el parámetro newline= la función incorporada open() lugar de io.open() .

La vieja manera: modo binario

La forma antigua de evitar la conversión de nueva línea, que no funciona en Python 3, es abrir el archivo en modo binario para evitar la traducción de los caracteres de fin de línea:

f = open(''file.txt'', ''wb'') # note the ''b'' meaning binary

pero en Python 3, el modo binario leerá bytes y no caracteres, por lo que no hará lo que quieres. Probablemente obtendrá excepciones cuando intente hacer I / O de cadena en la transmisión. (por ejemplo, "TypeError: ''str'' no admite la interfaz de búfer").


Para Python 2 y 3

Vea: La forma moderna: use la respuesta de newline = '''' en esta misma página.

Solo para Python 2 (respuesta original)

Abra el archivo como binario para evitar la traducción de los caracteres de fin de línea:

f = open(''file.txt'', ''wb'')

Citando el manual de Python:

En Windows, ''b'' añadido al modo abre el archivo en modo binario, por lo que también hay modos como ''rb'', ''wb'' y ''r + b''. Python en Windows hace una distinción entre archivos de texto y binarios; los caracteres de fin de línea en los archivos de texto se modifican automáticamente de forma automática cuando se leen o escriben los datos. Esta modificación detrás de escena de los datos del archivo está bien para los archivos de texto ASCII, pero dañará los datos binarios como los archivos JPEG o EXE. Tenga mucho cuidado de usar el modo binario cuando lea y escriba tales archivos. En Unix, no se pierde nada con agregar una ''b'' al modo, de modo que puede usarla de forma independiente para todos los archivos binarios.


Deberá usar el pseudo-modo binario al abrir el archivo.

f = open(''file.txt'', ''wb'')