82 votes

Python obtient une fin de ligne correcte

Existe-t-il un moyen simple d'obtenir le type de fin de ligne que le système d'exploitation actuel utilise ?

121voto

dF. Points 29787

Si vous travaillez sur un fichier que vous avez ouvert en mode texte, vous avez raison de dire que les sauts de ligne s'affichent tous sous la forme de "". \n '. Sinon, vous cherchez os.linesep .

De http://docs.python.org/library/os.html :

os. linesep

La chaîne de caractères utilisée pour séparer (ou, plutôt, terminer) les lignes dans le fichier plateforme actuelle. Il peut s'agir d'un simple unique, tel que ' \n ' plusieurs caractères, par exemple ' \r\n pour Windows. N'utilisez pas os.linesep comme terminaison de ligne lorsque vous l'écriture de fichiers ouverts en mode texte (la par défaut) ; utilisez un simple ' \n ' sur toutes les plateformes.

0 votes

Quand vous parlez de "mode texte", entendez-vous par mode non-binaire en général ?

20voto

Evan Fosmark Points 17732

Oh, j'ai compris. Apparemment, PEP-278 déclare ce qui suit :

Toute fin de ligne dans le fichier d'entrée sera considérée comme un ' \n en Python, de sorte que peu d'autres codes doivent être modifiés pour gérer les nouvelles lignes universelles.

7voto

oefe Points 9122

Si vous spécifiez correctement le test resp. le binaire lors de l'ouverture des fichiers, et que vous utilisez les nouvelles lignes universelles, vous ne devriez pas avoir à vous soucier des différentes nouvelles lignes la plupart du temps.

Mais si vous devez le faire, utilisez os.linesep

1voto

mabooka Points 31

Os.linesep est important car il dépend (comme son nom l'indique :)) de os.

Par exemple, sous Windows, ce n'est pas " \n "mais plutôt " \r\n ".

Mais si vous ne vous souciez pas de l'aspect multiplateforme, vous pouvez simplement utiliser ' \n '.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X