Methode Replace mit Sternchen verwenden

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
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

Hallo Freunde,
ich bin grade dabei ein File auszulesen und mit der Methode replace zu bearbeiten.

Das hier ist die Line im Textfile:
10/13/14,11:50:32,01,hier kommt ein text!

ich möchte nun die anzeige "10/13/14,11:50:32,01," die aber Variable sein kann immer nicht sichtbar haben.

Code: Alles auswählen

string = "10/13/14,11:50:32,01,hier kommt ein text!"

string.replace("*/*/*,*:*:*,*,")
wieso klappt das mit dem Sternchen nicht ? eigendlich bedeutet doch Sternchen "irgendetwas in diesem String"..... helppp
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, das bedeutet das nicht. Jedenfalls nicht in jedem beliebigen Kontext. Sondern nur in speziellen, naemlich glob und fnmatch.

Leider ist mir nicht klar was " die aber Variable sein kann immer nicht sichtbar haben." bedeuten soll. Darum kann ich (und ich denke mal auch niemand anderes) da jetzt gross weiter helfen. Vielleicht erklaerst du noch mal verstaendlicher, was du eigentlich erreiche willst.

Last but not least hast du offensichtlich CSV-Daten, also duch Komma getrennte Werte. Um die zu verarbeiten bietet sich das csv-Modul an.
phoenixx592
User
Beiträge: 66
Registriert: Sonntag 25. Juni 2017, 16:41

Nein ich glaube du verstehst nicht was ich meine :) also:

ich habe eine Variable mit dem Namen string deklariert. In dieser Variable steht der Text "10/13/14,11:50:32,01,hier kommt ein text!"

so jetzt versuche ich mit der Methode "replace" die Werte am Anfang zu ersetzen:

Code: Alles auswählen

Neuer_string = string.replace("*/*/*,*:*:*,*,", "")
wenn ich mir jetzt die Variable ausgeben lasse:

Code: Alles auswählen

print(Neuer_string)
soll da nurnoch die Ausgabe stehen:

hier kommt ein text!

sorry habe das echt undeutlich geschrieben :lol:
Sirius3
User
Beiträge: 18267
Registriert: Sonntag 21. Oktober 2012, 17:20

Und ich glaube, Du hast nicht verstanden, was __deets__ geschrieben hat.
Statt irgendetwas wegzuersetzen solltest Du die Daten richtig in eine Datenstruktur einlesen und nur die letzte Spalte nehmen, wenn Dich nur die letzte Spalte interessiert.

Statt des csv-Moduls könnte man auch mit split arbeiten.
Benutzeravatar
kbr
User
Beiträge: 1507
Registriert: Mittwoch 15. Oktober 2008, 09:27

Das Problem mit Deiner Beschreibung ist, dass, auch wenn man versucht es zu erraten, unklar bleibt, ob der vor dem zu extrahierenden Text stehende Teil inhaltlich oder strukturell variabel ist. Wenn ersteres der Fall ist, könntest Du mit

Code: Alles auswählen

.split(',', 3)[-1]
ans Ziel kommen. Ansonsten müsstest Du genauer beschreiben, wie die Daten beschaffen sind.
Benutzeravatar
__blackjack__
User
Beiträge: 14033
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Hier wäre `rsplit()` eventuell passender. :-)
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Benutzeravatar
kbr
User
Beiträge: 1507
Registriert: Mittwoch 15. Oktober 2008, 09:27

@__blackjack__: Nicht wenn im Text auch Kommata vorkommen und diese nicht durch quote-characters geschützt sind. Letztere scheinen dem Beispiel gemäß zu fehlen und ersteres ist unklar ;)
Antworten