Est-il une fonction qui limitera pas uniquement des espaces pour les espaces, mais aussi les onglets?
Réponses
Trop de publicités?Espace blanc sur les deux côtés:
s = " \t a string example\t "
s = s.strip()
Les espaces sur le côté droit:
s = s.rstrip()
Les espaces sur le côté gauche:
s = s.lstrip()
Comme thedz points, vous pouvez fournir un argument à la bande de caractères arbitraires à l'une de ces fonctions comme ceci:
s = s.strip(' \t\n\r')
Cette bande de tout l'espace, \t, \n, \r, les personnages de la gauche, de droite ou des deux côtés de la chaîne.
Vous pouvez également utiliser très simples, et des fonctions de base: str.replace(), qui fonctionne avec les espaces et les tabulations:
>>> whitespaces = " abcd ef gh ijkl "
>>> tabs = " abcde fgh ijkl"
>>> print whitespaces.replace(" ", "")
abcdefghijkl
>>> print tabs.replace(" ", "")
abcdefghijkl
Simple et facile.
#how to trim a multi line string or a file
s=""" line one
\tline two\t
line three """
#line1 starts with a space, #2 starts and ends with a tab, #3 ends with a space.
s1=s.splitlines()
print s1
[' line one', '\tline two\t', 'line three ']
print [i.strip() for i in s1]
['line one', 'line two', 'line three']
#more details:
#we could also have used a forloop from the begining:
for line in s.splitlines():
line=line.strip()
process(line)
#we could also be reading a file line by line.. e.g. my_file=open(filename), or with open(filename) as myfile:
for line in my_file:
line=line.strip()
process(line)
#moot point: note splitlines() removed the newline characters, we can keep them by passing True:
#although split() will then remove them anyway..
s2=s.splitlines(True)
print s2
[' line one\n', '\tline two\t\n', 'line three ']