Mehrzeiliger String in einzeiligen String umwandeln?

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
PhantomWorks
User
Beiträge: 18
Registriert: Samstag 25. April 2009, 11:11

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
Benutzeravatar
Klip
User
Beiträge: 98
Registriert: Donnerstag 10. August 2006, 20:39

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 :)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

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.
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
PhantomWorks
User
Beiträge: 18
Registriert: Samstag 25. April 2009, 11:11

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?
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

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...
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Antworten