web-dev-qa-db-fra.com

Python se termine bien

Existe-t-il un moyen simple d’obtenir le type de ligne se terminant par le système d’exploitation actuel?

61
Evan Fosmark

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

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

os .linesep

La chaîne utilisée pour séparer (ou plutôt terminer) les lignes du fichier plate-forme actuelle. Cela peut être un simple caractère, tel que '\ n' pour POSIX ou plusieurs caractères, par exemple, '\ r\n' pour Windows. Ne pas utiliser os.linesep comme terminateur de ligne lorsque écrire des fichiers ouverts en mode texte (le par défaut); utilisez un seul '\ n' à la place, sur toutes les plateformes.

93
dF.

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

Toute ligne se terminant par le fichier d'entrée sera considérée comme un '\ n' en Python, de sorte que peu de code doit être modifié pour gérer les retours à la ligne universels.

18
Evan Fosmark

Si vous spécifiez test resp. Lorsque vous ouvrez des fichiers correctement et que vous utilisez correctement les nouvelles lignes universelles, vous ne devriez pas avoir à vous soucier de nouvelles lignes la plupart du temps.

Mais si vous devez le faire, utilisez os.linesep

5
oefe

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

Par exemple. sous Windows, il ne s’agit pas de "\ n" mais de "\ r\n".

Mais si vous ne vous souciez pas des choses multi-plateformes, vous pouvez simplement utiliser '\ n'.

0
Vlad K.