Seite 1 von 1
String.endswith()
Verfasst: Dienstag 17. März 2015, 15:06
von Killigen
Hallo Leute!
Habe gerade ein Problem. Ich möchte einen String aus einer Datei einlesen und ihn darauf testen ob er mit einer Klammer endet; also sowas hier:
var = (0x00)
if var.endswith(")"):
#do something
Anmerkung: Einlesen und so das geht alles also hierzu bitte keine Tipps.
Allerdings bekomme ich hier nie ein true...
Muss ich hier mit ascii Codierung arbeiten und wenn ja wie?
Grüße
Patrick
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 15:27
von Hyperion
Schau Dir doch mal an, was ``type(var)`` hier liefert
Übrigens kann der gezeigte Code so nicht funktionieren, sondern sollte einen ``AttributeError`` werfen!
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 15:28
von Ene Uran
Versuch mal ...
Code: Alles auswählen
var = "(0x00)"
if var.endswith(')'):
print("%s ends with a ')'" % var)
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 15:31
von Sirius3
@Killigen: wenn Du Zeilen aus einer Datei liest, hast Du garantiert noch das Zeile-Ende-Zeichen als letztes Zeichen. Leerraum wegzustripen ist übrigens fast immer eine gute Idee.
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 15:35
von Killigen
Also hier eine Vereinfachung meines Codes:
Code: Alles auswählen
with open("Hallo.txt") as f:
for line in f:
print line
if line.endswith(')'):
print "klammer gefunden"
else:
print "klammer nicht gefunden"
vielleicht ist es jetzt deutlicher...
@Ene Uran
Hab deinen Vorschlag ausprobiert so wie im Codebeispiel; funktioniert nur leider nicht
@Hyperion
Das ist aber keine wirkliche Lösung für mein Problem

Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 15:56
von snafu
Probier mal:
Oder falls es noch expliziter sein soll:
Die zweite Variante löscht nur das Newline-Zeichen am Ende einer Zeile, während die erste Variante jegliche Art von zusammenhängendem Leerraum (also auch Leerzeichen oder Tabs) vom Zeilenende entfernt.
Alternativ zur zweiten Variante geht auch:
Dies löscht immer das letzte Zeichen aus dem String (egal was es ist).
Das sind aber eigentlich Dinge, die man nach dem Lesen eines Grundlagen-Tutorials schon von selbst wissen müsste...
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 16:37
von Killigen
Danke snafu line.rstrip().endswith(')') hat funktioniert!

was macht das rstrip?
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 16:42
von BlackJack
@Killigen: Das macht das was in der Dokumentation zu der Methode steht…
Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 16:50
von Hyperion
Killigen hat geschrieben:
@Hyperion
Das ist aber keine wirkliche Lösung für mein Problem

Ich kann doch nichts dafür, dass Du uns hier *fehlerhaften* und sachlich *falschen* Code zur Beschreibung postest
Meine Kristallkugel hat da eben nicht so gut funktioniert wie die der anderen...

Re: String.endswith()
Verfasst: Dienstag 17. März 2015, 23:24
von snafu
Killigen hat geschrieben:was macht das rstrip?
Habe ich in dem Beitrag doch geschrieben.
Re: String.endswith()
Verfasst: Mittwoch 18. März 2015, 08:03
von Sirius3
@Hyperion: lieber eine kaputte Kristallkugel als konsequent ignoriert zu werden

Re: String.endswith()
Verfasst: Mittwoch 18. März 2015, 09:43
von Hyperion
Sirius3 hat geschrieben:@Hyperion: lieber eine kaputte Kristallkugel als konsequent ignoriert zu werden

*tröst*

Re: String.endswith()
Verfasst: Mittwoch 18. März 2015, 11:00
von Killigen
Naja danke für die Hilfe!
Der Code von snafu hat jedenfalls funktioniert!