Führende und nachfolgende Leerzeichen entfernen?

109

Es fällt mir schwer, .strip mit der folgenden Codezeile zu verwenden.

Danke für die Hilfe.

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])
fpena06
quelle
3
Was ist Linie? Ein Beispiel wäre toll oder wir raten nur.
Jamylak
f.write (str (re.split ("Tech ID: | Name: | Account #:", Zeile) [- 1]). strip)
fpena06
1
Aus dem Code, den Sie gerade gepostet haben, geht hervor, dass Sie die Paranthesis nach dem Strip vergessen haben
Jamylak
Sie haben die Klammern des Funktionsaufrufs danach verpasst strip. Sie wollen : f.write(str(re.split("Tech ID:|Name:|Account #:",line)[-1]).strip()).
Li-aung Yip
1
Warum gehst du nicht einfach hinzufügen Leerzeichen zu Ihren regulären Ausdruck: re.split(r"\s*(?:Tech ID:|Name:|Account #:)\s*usw.
georg

Antworten:

235

Mit dem strip () können Sie nachfolgende und führende Leerzeichen entfernen.

>>> s = '   abd cde   '
>>> s.strip()
'abd cde'

Hinweis: Die Innenräume bleiben erhalten

Anshuma
quelle
31
Vergessen Sie nicht, die Ausgabe von s.strip () wieder s zuzuweisen, wenn dies Ihr Ziel ist: s = s.strip ()
Seanonymous
@ GregSchmit Wie könnte jemand das verpassen? 78 Likes und niemand bemerkt? Seltsam.
MYGz
@MYGz Ja, ich habe mich selbst befragt und gedacht, dass ich etwas verpasst haben könnte.
Greg Schmit
2
@ GregSchmit Anscheinend haben 89294 Augen es gescannt. Sie haben 1 scharfes Paar: P
MYGz
Klar, ich mache etwas falsch, aber ich weiß nicht, was das ist. Wenn ich strip () für eine Zeichenfolge ausführe, erhalte ich eine Liste von Zeichenfolgen zurück, keine Zeichenfolge.
user1928764
5

Erweitern Sie Ihren einen Liner in mehrere Zeilen. Dann wird es einfach:

f.write(re.split("Tech ID:|Name:|Account #:",line)[-1])

parts = re.split("Tech ID:|Name:|Account #:",line)
wanted_part = parts[-1]
wanted_part_stripped = wanted_part.strip()
f.write(wanted_part_stripped)
Li-aung Yip
quelle
3

Es sollte beachtet werden, dass die strip()Methode alle führenden und nachfolgenden Leerzeichen aus der Zeichenfolge entfernen würde (wenn kein übergebenes Argument vorhanden ist). Wenn Sie Leerzeichen kürzen möchten, während die anderen (z. B. Zeilenumbruch) beibehalten werden, kann diese Antwort hilfreich sein:

sample = '  some string\n'
sample_modified = sample.strip(' ')

print(sample_modified)  # will print 'some string\n'

strip([chars]): Sie können optionale Zeichen an strip([chars])method übergeben. Python sucht nach Vorkommen dieser Zeichen und schneidet die angegebene Zeichenfolge entsprechend ab.

inverted_index
quelle
0

Startdatei:

     line 1
   line 2
line 3  
      line 4 

Code:

with open("filename.txt", "r") as f:
    lines = f.readlines()
    for line in lines:
        stripped = line.strip()
        print(stripped)

Ausgabe:

line 1
line 2
line 3
line 4
Joshua Hall
quelle