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

ausgabe in textfile formatieren?

Beitragvon stigi » 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=]
[11.05.06] [jjfsjfjsdjfsdkjkfs] [art]
[11.05.06] [fdss] [art][/code]

ihr könnt mir folgen was ich mein ?!
Bild read between the lines for better smelling socks Bild
Benutzeravatar
synopia
User
Beiträge: 17
Registriert: Mittwoch 1. März 2006, 19:47

Beitragvon synopia » 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)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: ausgabe in textfile formatieren?

Beitragvon gerold » 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

Beitragvon stigi » Donnerstag 11. Mai 2006, 06:53

ho danke gerold, so ist das natürlich viel einfacher :roll: aber trotzdem danke synopia
Bild read between the lines for better smelling socks Bild

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], pixewakb