mit Tabstop-Trenner in TXt schreiben?

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
mod_che
User
Beiträge: 46
Registriert: Freitag 13. April 2007, 16:58

Hallo,
ich möchte für Zeitschritte von 1 bis 2000 jeweils verschiedene Werte in eine TXT-Dateiausgeben lassen, also zB:

n Geld Leute Häuser
1 100 3 0
2 1000 3 1
3 500 2 2
4 1000 2 0

Kann ich irgendwie erreichen, dass Python zwischen den Werten Tabstops schreibt, weil ich die Datei später in Excel übernehmen will?
Ich habs schon mit Formatierungen ala '%15.3f%15.3f' %(wert1, wert2) probiert, das blickt später Excel aber nicht richtig.

Danke und Grüße
Michael
Python rockt.
querdenker
User
Beiträge: 424
Registriert: Montag 28. Juli 2003, 16:19
Wohnort: /dev/reality

schau dir mal in den Docs die Ausgabeformatierung an :wink:

dürfte helfen.

hth, querdenker
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Dafür hat Python ein csv Modul. ;)
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

kann man da nicht besser csv Dateien verwenden?
Also duch Semicolon getrennte Werte:

Code: Alles auswählen

n;Geld;Leute;Häuser 
1;100;3;0 
2;1000;3;1 
3;500;2;2 
4;1000;2;0
Zu spät ;)
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Alternativ kannst Du natürlich auch direkt in Dateien im Excel-Format schreiben. (Forumsuche dürfte Einiges zu Tage fördern.)

Aber ich bleibe auch oft im Textformat ...

Gruß,
Christian
mod_che
User
Beiträge: 46
Registriert: Freitag 13. April 2007, 16:58

querdenker hat geschrieben:schau dir mal in den Docs die Ausgabeformatierung an :wink:

dürfte helfen.

hth, querdenker
Ja, das macht mich schon glücklich, mal sehen, was Excel jetzt macht...
Danke Euch.
Python rockt.
mgraf
User
Beiträge: 34
Registriert: Donnerstag 14. Juni 2007, 11:46

Dieses Thema ist zwar schon etwas länger her, aber es trifft mein Problem am ähnlichsten.
Und zar ich möchte meine Daten, die in einer MySQL-Datenbank gespeichert werden in eine csv-Datei ausgeben, funktioniert auch wunderbar.

Allerdings habe ich jetzt in einer Spalte folgenden Text:

Code: Alles auswählen

Prim. Dr; Physiotherapeut
beim Export werden diese Werte aber getrennt und eine Spalte verschoben, weil ich als Trennzeichen ja ; verwende.

Gibt es eine Möglichkeit solche bösen Zeichen zu escapen?

Mein Code bisher:

Code: Alles auswählen

for user in userdetaildata:
  print "%s;%s;%s;%s" % (userdetaildata[i].hash,
    userdetaildata[i].function,
    userdetaildata[i].firstname,
    userdetaildata[i].lastname,
)
  i += 1

RESPONSE.setHeader("Content-type","application/vnd.ms-excel;;charset=UTF-8")
RESPONSE.setHeader("Content-disposition","attachment;filename=mozart-science.csv")

return printed
PS: ich verwende ein Restricted Python, also sind nicht alle Imports möglich!!
PPS: Zope/Plone :?

lg
michi
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

mgraf hat geschrieben:Dieses Thema ist zwar schon etwas länger her, aber es trifft mein Problem am ähnlichsten.
Du solltest trotzdem keine fremden Threads kapern.

CSV versteht das quoting von Trennzeichen, für den Fall das du kein Masochist bist gibt es das CSV-Modul.
Wenn du doch einer bist, musst du wohl erst das CSV-Format verstehen lernen und dann selbst implementieren: Wikipedia ist ein guter Anfang.
Antworten