Seite 1 von 1

ausgabe in textfile formatieren?

Verfasst: Donnerstag 11. Mai 2006, 06:12
von stigi
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 ?!

Verfasst: Donnerstag 11. Mai 2006, 06:30
von synopia
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)

Re: ausgabe in textfile formatieren?

Verfasst: Donnerstag 11. Mai 2006, 06:38
von gerold
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
:-)

Verfasst: Donnerstag 11. Mai 2006, 06:53
von stigi
ho danke gerold, so ist das natürlich viel einfacher :roll: aber trotzdem danke synopia