Python: Wie lese ich eine Zahl aus einem String mit zusätzlichem Text aus?

... komplette Frage anzeigen

5 Antworten

Du könntest mit Regex arbeiten, aber ehrlich gesagt halte ich das in diesem Fall für einen Overkill.

Eine einfache QnD-Lösung wäre folgendes:

for line in fh: # fh => file_handle
voc, les = tuple(x.strip(' \\t\\r\\n]') for x in line.rsplit('[', 1))
les = int(les)

print('"%s" in Lektion %d' % (voc, les))

Fehlertoleranz musst du dir selber einbauen, z. B. wenn eine Zeile leer ist oder falsch formatiert ist. :)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DatAnswerFromMe
24.08.2016, 15:00

Danke für deine Antwort. Ich habe es schon anders, ordentlicher gelöst.

PS: Ich meine nicht ordentlicher als deine Lösung, sondern mit einem anderen Weg, auf den du nicht hättest kommen können ^^

0

Hallo

Wie lese ich eine Zahl aus einem String mit zusätzlichem Text aus?

Ich spreche kein Python, jedenfalls nicht fließend, von daher gibt es eine Shell geprägte Antwort.

Jetzt möchte ich mit einer For-Schleife die Textdatei durchgehen und immer die Lektionsnummer herausfiltern.

Damit meinst Du jetzt entfernen und nur den Rest anzeigen oder genau anders herum?

Vokabel1 [Lektionsnummer] Vokabel2 [Lektionsnummer] Vokabel 3 [Lektionsnummer]

Vielleicht hilft Dir auf die Schnelle das hier weiter:

for i in $(ls -1 *.txt); do grep -E [[[:Digit:]]]) $i ; done

Linuxhase

Antwort bewerten Vielen Dank für Deine Bewertung

Ich kann leider nur C#, aber in Python müsste es auch so gehen: In die foreach-Schleife kommt die Liste mit allen Zeilen. Für jede Zeile als String suchst du dann den Substring ab der Stelle mit dem [ bis zur letzten Stelle des ].

Antwort bewerten Vielen Dank für Deine Bewertung

Die Formatierung ist etwas falsch. Ich hoffe bei dieser Antwort ist sie richtig...

Textdatei:

Vokabel1 [Nummer]

Vokabel 2 [Nummer]

Vokabel 3 [Nummer]

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?