Stringumformatierung / Strings nach X Zeichen abschneiden

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.
brasil66
User
Beiträge: 27
Registriert: Mittwoch 20. Juli 2005, 19:01
Wohnort: Braunschweig

Stringumformatierung / Strings nach X Zeichen abschneiden

Beitragvon brasil66 » Montag 23. Januar 2006, 12:01

hallo python-gemeinde!

ich habe ein ganz einfaches string-formatierungsproblem.

ich muss eine csv-datei auf eine sap-taugliche datei mit festen feldlängen umstricken, soweit kein problem und häufig gemacht(.ljust(), .rjust() .zfill() sind meine freunde!) aber jetzt kann ich mich leider nicht darauf verlassen, das in der csv-datei gelieferte felder die maximallänge des jeweiligens feldes nicht übersteigen, quasi einfach länger sind als sie dürften. und ljust() und rjust() schneiden leider die überstehenden zeichen nicht ab und somit kommen mir bei zu langen feldern meine festen feldlängen in der exportdatei durcheinander!

bisher: exportdatei.write(datensatz[xx].ljust(yy))

leider habe ich keine einfach möglichkeit gefunden einfach und unkompliziert datensätze zu kappen, so in der wünschenswerten art wie (ausgedacht) .rcut(x) oder .lcut(x) mit der ich einfach sagen könnte "nimm die ersten/letzten x zeichen und schneide den rest ab".

welche funktion habe ich übersehen? gibt es eine solche einfache funktion einfach nicht und wenn nicht wie löse ich das am unkompliziertesten?

Schonmal DANKE im voraus!!!
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Stringumformatierung / Strings nach X Zeichen abschneide

Beitragvon gerold » Montag 23. Januar 2006, 12:42

brasil66 hat geschrieben:welche funktion habe ich übersehen? gibt es eine solche einfache funktion einfach nicht und wenn nicht wie löse ich das am unkompliziertesten?

Hi!

Ja, du hast da wirklich etwas grundlegendes übersehen. :lol:

Code: Alles auswählen

s = "aabbccdd"

print s[0:2]
print s[2:4]
print s[4:6]

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Beitragvon modelnine » Montag 23. Januar 2006, 13:05

Oder guck Dir mal das eingebaute csv-Modul an:

http://www.python.org/doc/2.4.2/lib/module-csv.html

Kann zwar kein Linien-Formatting (also das was Gerold Dir schon gezeigt hat), macht aber Escaping und Quoting umsonst.

--- Heiko.
brasil66
User
Beiträge: 27
Registriert: Mittwoch 20. Juli 2005, 19:01
Wohnort: Braunschweig

Beitragvon brasil66 » Dienstag 24. Januar 2006, 18:30

Danke!

Tjaja, da ist mir wohl tatsächlich das SLICING entgangen ..... wollte schon immer mal wissen wozu das gut ist :D :D

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder