Ja, ich hatte mich halt gefragt, was daran Mißbrauch ist und das Du nicht weißt, wie strip anzuwenden ist.birkenfeld hat geschrieben:Du bist witzig, weißt du das?hendrikS hat geschrieben:Bitte mal die Doku lesen, bevor Du so was schreibst!!birkenfeld hat geschrieben:Das sieht mir sehr nach einem Missbrauch des Arguments von strip() aus.hendrikS hat geschrieben:Vielleicht mal so was probieren:Code: Alles auswählen
string.strip("</DATUM>").split('-')[0]
schöner splitten? string.split() Frage
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Ich denke Birkenfeld wil darauf raus, dass der Ansatz fiese Seiteneffekte hat, wie zb. auch das erste DATUM rauszuschmeissen ... neben allen anderen einzelnen chars die so darin vorkommen
Code: Alles auswählen
In [3]: teststring = "<DATUM>2008-08-08</DATUM>"
In [4]: teststring.strip("</DATUM>")
Out[4]: '2008-08-08'
Heh? Schon mal die Problemstellung gelesen? Es ist gerade der Sinn sowohl "<DATUM>" als auch "</DATUM>" zu eliminieren.cofi hat geschrieben:Ich denke Birkenfeld wil darauf raus, dass der Ansatz fiese Seiteneffekte hat, wie zb. auch das erste DATUM rauszuschmeissen ... neben allen anderen einzelnen chars die so darin vorkommen
Code: Alles auswählen
In [3]: teststring = "<DATUM>2008-08-08</DATUM>" In [4]: teststring.strip("</DATUM>") Out[4]: '2008-08-08'
Ganz schön merkwürdige Postings heute.
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Der Punkt ist aber, dass das auch "<" "/" "D" "A" "T" "U" "M" usw. aus dem Text schmeisst. Da es hier um Fliesstext(SGML) geht ist das alles andere als brauchbar.
Und die Problemstellung war an das Datum zu kommen, nicht Buchstaben herauszuschmeissen.
Und die Problemstellung war an das Datum zu kommen, nicht Buchstaben herauszuschmeissen.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Ich wollte darauf hinaus, dass dieser Ansatz schnell Probleme macht, wenn innerhalb des Tags plötzlich andere Dinge stehen. Und dass in diesem Fall die Regex wesentlich besser erkennen lässt, was eigentlich bezweckt wird.
Und dass ich die Doku zu strip() lesen soll, ist lustig, weil ich sie selbst (um-)geschrieben habe...
Und dass ich die Doku zu strip() lesen soll, ist lustig, weil ich sie selbst (um-)geschrieben habe...
Ja, was soll ich darauf antworten? Die Aufgabenstellung von christine ist glockenklar. Für diese funktioniert der Code. Auch eine Regexp kann nicht 100% funktionieren, wenn sich das Format auf einmal ändert.
Wenn Du an der Funktion sogar mitgeschrieben hast, wundert mich Dein erstes posting um so mehr. Solche Postings sind eher suboptimal und nicht besonders klug. Schreib doch besser mal was daran Mißbrauch ist.
Wenn Du an der Funktion sogar mitgeschrieben hast, wundert mich Dein erstes posting um so mehr. Solche Postings sind eher suboptimal und nicht besonders klug. Schreib doch besser mal was daran Mißbrauch ist.
- birkenfeld
- Python-Forum Veteran
- Beiträge: 1603
- Registriert: Montag 20. März 2006, 15:29
- Wohnort: Die aufstrebende Universitätsstadt bei München
Eine Regexp kann zu 100% den Inhalt dieses Tags herausholen (selbst wenn innen ungültiges XML stände).
Mein erstes Posting war zugegebenermaßen etwas kurz; ich möchte halt lieber zum Denken anregen als alles vorkauen.
Mein erstes Posting war zugegebenermaßen etwas kurz; ich möchte halt lieber zum Denken anregen als alles vorkauen.
@hendrikS: Ein Beispiel wo dein Code nicht funktioniert:
Und ich denke mal, sooo konstruiert ist es jetzt nicht unbedingt, dass jemand alle Veranstaltungen von 2008 aus einer Auflistung von 2003-2008 filtern will (oder sowas in der Art). Mag sein, dass das für christine nicht relevant ist, aber in nem halben Jahr will das jemand, stößt auf diesen Thread und wundert sich, dass es nicht klappt. Wahlweise gehen auch Punkte im Datum in Kombination mit ``3. Sommerfest Hintertupfingen``.
Code: Alles auswählen
In [17]: s = '<DAT><EVENT>a hyphenated-event</EVENT><DATUM>2008-08-08</DATUM></DAT>'
In [18]: s.strip('</DATUM>').split('-')[0]
Out[18]: 'EVENT>a hyphenated'