Seite 1 von 1

Python Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 21:03
von KaneWayne
Hallo,

ich lasse per urllib einen Quelcode einlesen.
Dieser wird natürlich in einer Linie ausggeben.

zb. string = "Bot1: Offline Bot2: Online Bot3: Offline"

ich möchte nun das nach jedem Offline/Online ein Zeilenumbruch gemacht wird.

Danke für jede hilfe !

Mfg

KaneWayne

Re: Phyton Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 21:05
von sparrow
Was hast du denn schon versucht, und was hat dabei nicht funktioniert?

Re: Phyton Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 21:07
von KaneWayne
Naja, ich würde es eigl. über split() machen.
Aber ich weiß nicht genau wie das funktioniert.
Über Google finde ich auch nichts was mir darüber weiterhilft (Anfänger)

Mfg

KaneWayne

Re: Phyton Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 21:43
von BlackJack
@KaneWayne: Dann arbeite mal ein Python-Tutorial durch damit Du Zeichenketten und deren Methoden, unter anderem `split()` kennenlernst, und die anderen grundlegenden Datentypen wie zum Beispiel Listen. In der Python-Dokumentation ist ein Tutorial. Und Learn Python The Hard Way ist ganz gut.

Re: Phyton Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 22:24
von degon
Hier mal ein zusammenhangloses Beispiel von mir:

Code: Alles auswählen

    def saveImageVertical(self):
        filename = QFileDialog.getSaveFileName(self, "Save Plot", "", "Images (*.png)")
        if not filename.isEmpty():
            if not filename.split('.')[-1] == "png":
                filename = filename + ".png"
            self.path = QFileInfo(filename).path()
            QPixmap.grabWidget(self.ui.qwtPlotVertical).save(filename, 'PNG')

Re: Phyton Text Splitten

Verfasst: Sonntag 21. Oktober 2012, 22:58
von BlackJack
@degon: Kein besonders gutes IMHO. ``if not filename.endswith('.png'):`` ist weniger aufwändig.

Re: Phyton Text Splitten

Verfasst: Montag 22. Oktober 2012, 00:19
von degon
@BlackJack,

danke! Das kannte ich noch nicht ;)

Re: Phyton Text Splitten

Verfasst: Montag 22. Oktober 2012, 08:06
von sparrow
@gegon:

Dein Programm würde also bild.PNG.png speichern, nur weil einer nach edem Punkt großgeschrieben hat? ;)

Re: Phyton Text Splitten

Verfasst: Montag 22. Oktober 2012, 17:18
von Hyperion
KaneWayne hat geschrieben: Dieser wird natürlich in einer Linie ausggeben.

zb. string = "Bot1: Offline Bot2: Online Bot3: Offline"
Wieso "natürlich"? Das hängt ja vom Datenformat ab und nicht von HTTP ;-)

Kannst Du das Format beeinflussen? Also bist Du selber der Datenersteller oder kann man das Format ggf. wählen o.ä.? Wenn ja, könnte man ja gleich ein Format wählen, welches einfacher zu parsen ist oder im Idealfall bereits genau so vorliegt, wie Du ihn brauchst :-)

Re: Phyton Text Splitten

Verfasst: Montag 22. Oktober 2012, 22:45
von Sirius3
Hallo,
willst Du den string nur ausgeben oder auch noch weiter verarbeiten?

Code: Alles auswählen

import re
print re.sub('Offline|Online','$0\n',string)
Grüße
Sirius

Re: Phyton Text Splitten

Verfasst: Montag 22. Oktober 2012, 23:27
von BlackJack
@Sirius3: Das fällt auf die Nase wenn einer der Namen 'Online' oder 'Offline' enthält.

Re: Phyton Text Splitten

Verfasst: Dienstag 23. Oktober 2012, 20:46
von Sirius3
@BlackJack: das war aber genau die Frage.
Natürlich müßte man exakt wissen, wie der Eingabestring aufgebaut sein kann um einen passenden
Parser zu schreiben. Wenn man nach dem Beispiel geht, dann kommt Offline und Online nicht als
Name vor.
Deshalb meine Frage, was weiter mit dem Ergebnis passiert. Ohne diese Information ist es reine
Spekulation, welche Lösung die Beste ist, da es 101 verschiedene Möglichkeiten gibt.

Re: Phyton Text Splitten

Verfasst: Mittwoch 24. Oktober 2012, 14:02
von sparrow
Wobei ich davon ausgehe, dass weder Name noch Status Whitespaces enthalten:

Code: Alles auswählen

>>> a
'Bot1: Offline Bot2: Online Bot3: Offline'
>>> re.findall(r'(\w+): (\w+)', a)
[('Bot1', 'Offline'), ('Bot2', 'Online'), ('Bot3', 'Offline')]