Je génère du texte dans ma candidature. Étant donné que le texte fait partie d'un message plus important, parfois je dois ajouter des nouvelles lignes, parfois pas:
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 txt
Cela pourrait être utilisé comme suit:
def get_message():
msg = get_txt(True)
msg += get_txt(True)
msg += get_txt(False)
return msg
Qui reviendrait:
Hello
Hello
Hello (no newline here)
Comment puis-je définir NEWLINE
de manière multiplateforme? Ou mieux encore, y a-t-il une fonction dans la bibliothèque standard (ou incluse dans python) qui peut ajouter une nouvelle ligne à une chaîne? (pas nécessairement lors de l'impression, ajoutez simplement une nouvelle ligne à la chaîne en mémoire). La nouvelle ligne utilisée devrait être la bonne pour la plate-forme étaient python est en cours d'exécution
Je viens toujours d'utiliser le caractère de nouvelle ligne '\n'
pour signifier un saut de ligne, bien que Windows utilise une nouvelle ligne et un caractère de retour chariot, j'ai testé sur ma machine Windows (python 3.4) la construction d'une chaîne en mémoire puis l'écriture dans un fichier, tandis qu'en mémoire, elle reste comme un seul caractère ( '\n'
) cependant, quand il est écrit dans un fichier, il est converti en deux caractères pour que la ligne correcte se termine sur Windows.
jusqu'à présent, je n'ai pas encore rencontré une seule bibliothèque qui avait un problème avec cela.
Vous pouvez essayer avec ceci:
import os
print(os.linesep)
Vous devez imprimer votre message pour qu'il s'affiche en tant que nouvelle ligne.
get_txt()
msg = get_message()
print(msg)
te donnera:
Hello
Hello
Hello
Assurez-vous simplement d'imprimer dans un fichier.