J'ai un multi-ligne de chaîne littérale que je veux faire une opération sur chaque ligne, comme si.
inputString = """Line 1
Line 2
Line 3"""
Je veux faire quelque chose comme ce qui suit.
for line in inputString:
doStuff()
J'ai un multi-ligne de chaîne littérale que je veux faire une opération sur chaque ligne, comme si.
inputString = """Line 1
Line 2
Line 3"""
Je veux faire quelque chose comme ce qui suit.
for line in inputString:
doStuff()
inputString.splitlines()
Vous donnera un tableau avec chaque élément, l' splitlines()
méthode est conçu pour diviser chaque ligne dans un élément du tableau.
Comme les autres ont dit:
inputString.split('\n') # --> ['Line 1', 'Line 2', 'Line 3']
C'est identique au précédent, mais la chaîne de fonctions du module sont obsolètes et doivent être évités:
import string
string.split(inputString, '\n') # --> ['Line 1', 'Line 2', 'Line 3']
Alternativement, si vous souhaitez que chaque ligne afin d'inclure la séquence de saut (CR,LF,CRLF), utilisez la splitlines méthode avec un Vrai argument:
inputString.splitlines(True) # --> ['Line 1\n', 'Line 2\n', 'Line 3']
La meilleure façon de le faire est de simplement utiliser str.splitlines
.
Bien que, à première vue, cela peut sembler le même que le fait de faire split('\n')
, ils ont des comportements différents.
\n
sur python représente un Unix saut de ligne, indépendamment de la plate-forme où vous l'exécutez. Cependant, le saut de ligne est la représentation dépend de la plateforme. Sur windows, \n
est deux personnages, CR
et LF
(décimal ASCII codes 13 et 10, aka \r
et \n
), alors que sur tous les Unix (y compris OS X), c'est le caractère LF
.
print
, par exemple, fonctionne correctement même si vous avez une chaîne avec des fins de ligne qui ne correspondent pas à votre plate-forme:
>>> print " a \n b \r\n c "
a
b
c
Cependant, explicitement fractionnement "\n" rendement dépend de la plateforme de comportement:
>>> " a \n b \r\n c ".split("\n")
[' a ', ' b \r', ' c ']
Pour cette raison, il est préférable d'utiliser des splitlines
:
>>> " a \n b \r\n c ".splitlines()
[' a ', ' b ', ' c ']
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.