Textdatei durchsuchen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

Hallo zusammen :)

folgendes:

Ich erhalte eine Textdatei die zum beispiel wie folgt aussieht:
#Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. #Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam #erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

X: 123,11; Y:123,12; H: 54,12; OPS: 12,41112; GHL: 0,0001233
JUN: 17273,18
Nun brauche ich aus dieser Textdatei NUR X & Y (Es kann sein das sich die Position von X & Y ändert also sprich X bzw. Y könnte auch als aller letzter Wert stehen)
Habt ihr eine Idee wie ich das mit Hilfe von Python durchsetzen kann?

Die Textdatei erhalte ich direkt in meinen Ordner.

Ich bin leider absoluter Anfänger was Python angeht und freue mich deshalb über jeden Vorschlag :)
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du das zu Fuß machen willst, mußt Den String an den ; aufspalten (split) jeden Teil durchgehen und prüfen, ob vor dem : ein X oder Y steht und den Wert der danach kommt als Zahl speichern.
Du brauchst also Wissen über Stringverarbeitung.
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

Sirius3 hat geschrieben: Sonntag 20. Januar 2019, 18:39 Wenn Du das zu Fuß machen willst, mußt Den String an den ; aufspalten (split) jeden Teil durchgehen und prüfen, ob vor dem : ein X oder Y steht und den Wert der danach kommt als Zahl speichern.
Du brauchst also Wissen über Stringverarbeitung.

Genau soweit bin ich auch, hab auch schon n code geschrieben.
Schaut so aus:

Code: Alles auswählen

import re


regexp = re.compile(r'X.*?([0-9.-]+)') 
result = []
with open('bspl.txt') as f:
    for line in f:
        match = regexp.match(line)
        if match:
            result.append(match.group(1))
            print (match.group(1))
Kann mir vielleicht jemand sagen wie ich das mit dem Splitt machen kann?
Problem ist jetzt nämlich das ich immer nur bis zu " ; " suchen kann und dann findet mein code nichts mehr.

Also bspl:


X: 124,122; Y:84747,2

X finde ich aber Y nicht mehr wegen dem " ; "
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

`split` ist in jedem Tutorial zu String-Funktionen erklärt: line.split(';')
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

Wie ich einen String splitte weise ich:

Code: Alles auswählen

text = 'geeks;for;geeks'
x = text.split(';')
print(x)
wie das jetzt aber mit einer Datei mache die erst geöffnet werden muss, da habe ich leider keine Ahnung :)

Deshalb habe ich ja hier gefragt :)

Mit freundlichen Grüßen
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Du hast doch schon eine for-Schleife, die die Datei zeilenweise durchgeht.
Kirikkayis
User
Beiträge: 85
Registriert: Freitag 18. Januar 2019, 08:02

Hey Sirius3,

ich danke dir für die Gedankenanstöße.

Ich hab es nun hinbekommen.

Vielen Dank nochmal und ein schönes Wochenende ...
Antworten