Seite 1 von 1

Mehrzeiliger String in einzeiligen String umwandeln?

Verfasst: Montag 29. Juni 2009, 11:50
von PhantomWorks
Hallo zusammen!

Ich komme leider nicht weiter bei folgendem problem:

Meine Ausgangs-XML-Datei enthält mehrzeilige Strings, z.B.

<xx:Anschrift>
Hans Meier
Taubenweg 38
12345 Musterstadt
Deutschland
</xx:Anschrift>

Für meine Ausgabe in ein neues XML-Dokument (das ich jetzt übrigens mit lxml erstelle, danke an das Forum!!) benötige ich diesen mehrzeiligen String jedoch in dieser Form:

<yy:neueAdresse>Hans Meier, Taubenweg 38, 12345 Musterstadt, Deutschland</yy:neueAdresse>

Lese ich den xx-String aus und schreibe ihn in die neue Datei, bleiben die Zeilenumbrüche leider erhalten.

Wie kann ich das ändern? Ob die Werte nun durch ",", ";", "-", oder einfach nur durch Leerzeichen voneinander getrennt sind, ist egal.

Danke!!

Viele Grüße

Verfasst: Montag 29. Juni 2009, 11:57
von Klip

Code: Alles auswählen

>>> a = "Hans Meier\n\
Taubenweg 38\n\
12345 Musterstadt\n\
Deutschland\n"
>>> a.strip().replace("\n", ", ")
'Hans Meier, Taubenweg 38, 12345 Musterstadt, Deutschland'
Hier ist eine Möglichkeit :)

Verfasst: Montag 29. Juni 2009, 12:23
von Rebecca

Code: Alles auswählen

>>> a = "Hans Meier\nTaubenweg 38\n12345 Musterstadt\nDeutschland\n" 
>>> a.splitlines()
['Hans Meier', 'Taubenweg 38', '12345 Musterstadt', 'Deutschland']
>>> ", ".join(a.splitlines())
'Hans Meier, Taubenweg 38, 12345 Musterstadt, Deutschland'
Funktioniert im Gegensatz zur oben genannten Methode auch fuer andere Zeilenumbruchszeichen.

Verfasst: Dienstag 30. Juni 2009, 08:14
von PhantomWorks
Danke Für Eure Antworten! Funktioniert prima!!

Wenn ihr mir noch eine andere Frage erlaubt:

Ich will nach jedem Durchlauf einer for-Schleife eine neue Datei erzeugen, fortlaufend durchnummeriert. Über einen Counter wollte das nicht so wirklich funktionieren...

Gibt es da evtl. in Python eine fertige Funktion?

Verfasst: Dienstag 30. Juni 2009, 09:02
von mkesper
PhantomWorks hat geschrieben:Ich will nach jedem Durchlauf einer for-Schleife eine neue Datei erzeugen, fortlaufend durchnummeriert. Über einen Counter wollte das nicht so wirklich funktionieren...
Zeig mal den Code...

Re: Mehrzeiliger String in einzeiligen String umwandeln?

Verfasst: Dienstag 30. Juni 2009, 09:21
von Hyperion
PhantomWorks hat geschrieben: Für meine Ausgabe in ein neues XML-Dokument (das ich jetzt übrigens mit lxml erstelle, danke an das Forum!!) benötige ich diesen mehrzeiligen String jedoch in dieser Form:

<yy:neueAdresse>Hans Meier, Taubenweg 38, 12345 Musterstadt, Deutschland</yy:neueAdresse>
Bist Du Dir sicher, dass Du diese Form "willst"? (Oder kann man an dem Format nichts ändern, da es vorgegeben ist?)

Imho bringt es ja nix XML (oder irgend ein anderes strukturierendes Format) einzusetzen und dann darin die Elemente nicht zu schachteln. Also wenn Du das Format beeinflussen kannst, nutze doch XML-Tags.