ausgabe in textfile formatieren?

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
stigi
User
Beiträge: 64
Registriert: Dienstag 4. April 2006, 07:05

Donnerstag 11. Mai 2006, 06:12

moin zammen

hab folgendes problem:
ich gebe in eine textfile folgende daten aus:

[datum] [beschreibung] [art]

wie kann ich die ausgabe formatieren, damit jede ausgabe immer an der gleichen stelle in der jeweiligen zeile beginnt?
also z.b.

Code: Alles auswählen

[11.05.06] [jjfsjfjsdjfsdkjkfs] [art]
[11.05.06] [fdss]               [art]
ihr könnt mir folgen was ich mein ?!
[img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img] read between the lines for better smelling socks [img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img]
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Donnerstag 11. Mai 2006, 06:30

Na du kannst die Beschreibungsstrings mit Leerzeichen auffüllen:

Code: Alles auswählen

# Maximale Länge der Beschreibungen finden
maxlen = 0
for desc in descriptions:
   if len(desc)>maxlen: maxlen = len(desc)
i=0
# Beschreibungen, die kürzer als die maximale sind, mit Leerzeichen auffüllen
for desc in descriptions:
   if len(desc)<maxlen: 
      descriptions[i] = desc+ ( (maxlen-len(desc))*" " )
   i+=1
(ungetestet)

Frage: Wie kann man das "i" wegmachen, also wie kann man über eine Liste iterieren, jedes Element der Liste ändern und das gleich wieder zurückschreiben?

Alternativ kannste auch mit Tabs auffüllen, allerdings ist nicht definiert, wie lang ein Tab ist (hängt vom Editor ab)
--
http://www.weltenwerk.net
^^
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Donnerstag 11. Mai 2006, 06:38

stigi hat geschrieben:wie kann ich die ausgabe formatieren, damit jede ausgabe immer an der gleichen stelle in der jeweiligen zeile beginnt?
Hi stigi!

Code: Alles auswählen

print "|%-20s|%-20s|" % ("Hallo", "Servus")
http://docs.python.org/lib/typesseq-strings.html
http://python.org/doc/2.4.3/tut/node9.html

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
stigi
User
Beiträge: 64
Registriert: Dienstag 4. April 2006, 07:05

Donnerstag 11. Mai 2006, 06:53

ho danke gerold, so ist das natürlich viel einfacher :roll: aber trotzdem danke synopia
[img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img] read between the lines for better smelling socks [img]http://img73.imageshack.us/img73/9951/stigismiley9cp.gif[/img]
Antworten