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
Python Text Splitten
@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.
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')
@degon: Kein besonders gutes IMHO. ``if not filename.endswith('.png'):`` ist weniger aufwändig.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wieso "natürlich"? Das hängt ja vom Datenformat ab und nicht von HTTPKaneWayne hat geschrieben: Dieser wird natürlich in einer Linie ausggeben.
zb. string = "Bot1: Offline Bot2: Online Bot3: Offline"
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
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
Hallo,
willst Du den string nur ausgeben oder auch noch weiter verarbeiten?
Grüße
Sirius
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)
Sirius
@Sirius3: Das fällt auf die Nase wenn einer der Namen 'Online' oder 'Offline' enthält.
@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.
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.
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')]