Estoy generando algo de texto en mi aplicación. Dado que el texto es parte de un mensaje más grande, a veces necesito agregar líneas nuevas, a veces no:
NEWLINE = '\n' # TODO: how to define this cross-platform? Can I use os.linesep? def get_txt(add_newline=False): txt = 'Hello' if add_newline: txt += NEWLINE return txtEsto podría usarse de la siguiente manera:
def get_message(): msg = get_txt(True) msg += get_txt(True) msg += get_txt(False) return msgque devolvería:
Hello Hello Hello (no newline here) ¿Cómo puedo definir NEWLINE de forma multiplataforma? O mejor aún, ¿hay una función en la biblioteca estándar (o incluida en python) que pueda agregar una nueva línea a una cadena? (no necesariamente al imprimir, simplemente agregue una nueva línea a la cadena en la memoria). La nueva línea utilizada debe ser la correcta para la plataforma donde se ejecuta Python
Puedes probar con esto:
import os print(os.linesep)Siempre he usado el carácter de nueva línea '\n' para significar un salto de línea, aunque Windows usa una nueva línea y un carácter de retorno de carro, lo probé en mi máquina con Windows (python 3.4) creando una cadena en la memoria y luego escribiéndola en un archivo , mientras que en la memoria permanece como un solo carácter ( '\n' ), sin embargo, cuando se escribe en el archivo, se convierte en dos caracteres para que la línea finalice correctamente en Windows.
hasta ahora todavía no he encontrado una sola biblioteca que haya tenido un problema con esto.
Python usa \n para indicar un salto de línea.
Python traduce automáticamente \n al carácter de nueva línea adecuado según la plataforma.
También puedes probar
import os print (os.linesep)