Zeichenketten zerlegen mit python

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
THingK

Mittwoch 5. Oktober 2005, 21:45

Hi, ...
Wie kann ich in python Zeichenketten zelegen und wieder zusammensetzen,
so wie es für cvs-Format notwendig ist?

Folgendes Problem:

# aus
12345123456781234567890123456123456789
# mach
12345;12345678;1234567890;123456;123456789

so heißen:
a= substr(string,1,5)
b= substr(string,6,8)
c= substr(string,14,10)
d= substr(string,24,6)
e= substr(string,30,9)
f = a + ';' + b + ';' + c + ';' + d + ';' + e

Das geht ja leider so nicht.
Danke!

Edit (Leonidas): Thread verschoben.
BlackJack

Donnerstag 6. Oktober 2005, 00:31

Substrings bekommt man in Python mit der "Slice"-Syntax: `string[start:end]` wobei `start` der Index des ersten Zeichens beginnend mit 0 für das erste Zeichen einer Zeichenkette ist, und `end` der Index des ersten Zeichens, das *nicht* mehr enthalten sein soll.

Dein Problem kann man so angehen:

Code: Alles auswählen

import sys
import csv

data = '12345123456781234567890123456123456789'
positions = ((0, 5), (5, 8), (13, 10), (23, 6), (29, 9))

fields = [data[start:start+length] for start, length in positions]

# Simple solution:
print ';'.join(fields)

# Safer solution:
writer = csv.writer(sys.stdout, delimiter=';')
writer.writerow(fields)
Für das Zusammenfügen habe ich zwei Lösungen geschrieben. Die erste ist die Einfacherere, die zweite die Sicherere die das `csv` Modul benutzt. Die funktioniert auch dann, wenn das Semikolon in `data` vorkommt.
THingK

Donnerstag 6. Oktober 2005, 22:02

:P Danke für die schnelle Antwort !!!

Da ich noch nicht erkannt habe, wie python "denkt", nun meine neue Frage:

Wo erlese ich mir die Grundlagen (Paradigmen) der Sprachsysntax-Zusammenhänge am besten?

Mein Lehrbuch ist von Michael Weigert / 2. Auflage / Objektorientierte Programmierung mit Python / mitp-Verlag.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 7. Oktober 2005, 12:20

THingK hat geschrieben:Wo erlese ich mir die Grundlagen (Paradigmen) der Sprachsysntax-Zusammenhänge am besten?

Mein Lehrbuch ist von Michael Weigert / 2. Auflage / Objektorientierte Programmierung mit Python / mitp-Verlag.
Ja, lies das durch (mawe würde sicher sagen: gute Wahl), schreibe viele Wegwerf-Programme, dann bekommst du ein Gefühl wie man mit Python arbeitet.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Antworten