Gibt es eine Python-Funktion, die Whitespace (Leerzeichen und Tabulatoren) aus einer Zeichenfolge trimmen wird?
" \t example string\t " "example string"
Gibt es eine Python-Funktion, die Whitespace (Leerzeichen und Tabulatoren) aus einer Zeichenfolge trimmen wird?
" \t example string\t " "example string"
Für Leerzeichen auf beiden Seiten, verwenden Sie str.strip
:
s = " \t a string example\t "
s = s.strip()
Für Leerzeichen auf der rechten Seite verwenden Sie str.rstrip
:
s = s.rstrip()
Für Leerzeichen auf der linken Seite, verwenden Sie str.lstrip
:
s = s.lstrip()
Sie können jeder dieser Funktionen ein Argument übergeben, um beliebige Zeichen zu entfernen, etwa so:
s = s.strip(' \t\n\r')
Dadurch wird jeder Platz gestrichen, \t
, \n
o \r
Zeichen von beiden Seiten der Zeichenkette.
In den obigen Beispielen werden nur die Zeichen auf der linken und rechten Seite von Zeichenketten entfernt. Wenn Sie auch Zeichen aus der Mitte einer Zeichenkette entfernen wollen, versuchen Sie re.sub
:
import re
print(re.sub('[\s+]', '', s))
Das sollte ausgedruckt werden:
astringexample
Sie können auch sehr einfache und grundlegende Funktionen verwenden: str.replace() arbeitet mit Leerzeichen und Tabulatoren:
>>> whitespaces = " abcd ef gh ijkl "
>>> tabs = " abcde fgh ijkl"
>>> print whitespaces.replace(" ", "")
abcdefghijkl
>>> print tabs.replace(" ", "")
abcdefghijkl
Einfach und leicht.
#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 ']
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.