Modul mit Datentyp Tabelle gesucht

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.
PB88
User
Beiträge: 2
Registriert: Donnerstag 7. Mai 2009, 21:00
Wohnort: Wuppertal

Modul mit Datentyp Tabelle gesucht

Beitragvon PB88 » Donnerstag 7. Mai 2009, 21:43

Hallo,

ich suche ein Modul, das mir einen Datentyp "Tabelle"
nebst einiger schicker Methoden zur Verfügung stellt.
Sowas wie table.appendrow(...). table.appendcolumn(), etc.
Ich suche weniger etwas für SQL, als mehr etwas universelleres wie eine Exceltabelle.
Kennt jemand sowas?

Danke im voraus.

Gruß

Peter
problembär

Beitragvon problembär » Donnerstag 7. Mai 2009, 22:01

Was Du da beschreibst, ist aber schon ein Datenbankmodul. Das universellste ist wohl "anydbm".

Gruß
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Freitag 8. Mai 2009, 08:42

Hallo und willkommen im Forum!

das ist eine seltsame Beschreibung. Wenn anydbm nicht das sein sollte, was Du suchst, versuche doch mal zu beschreiben *was* Du erreichen willst und nicht *wie*. Gut möglich, das wir dann sagen können, wie das gut geht.

Gruß,
Christian
PB88
User
Beiträge: 2
Registriert: Donnerstag 7. Mai 2009, 21:00
Wohnort: Wuppertal

Beitragvon PB88 » Freitag 8. Mai 2009, 22:07

Hallo, und Danke für den Willkommensgruß!

Zum Grund meiner Frage:
Ich lese mit einem Makro im FEM-Programm Abaqus (hat einen eigenen Python-Kernel) errechnete Datenreihen (unterschiedlich lang) aus, und will dann verschiedenste Reihen zusammengefasst in ein CSV-File schreiben.
Da man in ein CSV-File aber nur zeilenweise schreiben kann, muß ich mir selbst eine Tabelle frickeln (Listen in Liste), und dafür Sorge tragen, das die Anzahl von Zeilen und Spalten immer konsistent ist und entsprechende Leerfelder generieren. Das ist ziemlich aufwändig und fehlerträchtig.
Daher dachte ich an einen Datentyp Tabelle wo ich ganz einfach Spalten oder Zeilen anfügen, einfügen kann, oder einzelne Felder beschreiben kann.
Dieser Datentyp sollte sich dann bei Abfrage als Listen in Liste darstellen.
Ich habe das Problem schon mit unzähligen Schleifen gelöst, aber es wirkt so elegant wie ein Faustkeil ;)

Grüße

Peter
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Samstag 9. Mai 2009, 09:09

Dann schau dir mal das `csv`-Modul an.
Dass deine Spalten konsistent bleiben, musst du aber selbst übernehmen. Das geht nicht auf magische Weise ;)
Wobei .. mit einem `csv.DictWriter` und einem `collections.defaultdict` könnte das schon hinhaun.
Benutzeravatar
hendrikS
User
Beiträge: 420
Registriert: Mittwoch 24. Dezember 2008, 22:44
Wohnort: Leipzig

Beitragvon hendrikS » Samstag 9. Mai 2009, 09:16

Also ich meine, daß man hier schon mit Standardlisten zurechtkommen sollte.

Code: Alles auswählen

[[1,2,3],[4,5,6],[7,8,9]]

Dies ist doch bereits was Du willst. Ich würde mir ne kleine Kasse drumherumschreiben. Kann man doch wunderschön abstrahieren.
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Samstag 9. Mai 2009, 12:42

ein ähnliches problem hatte ich auch mal.
dummerweise bin ich da nicht auf den dictwriter gekommen und hab mir was zusammengemurkst.


also der kann das ja:

Code: Alles auswählen

In [50]: import StringIO, csv

In [51]: sio=StringIO.StringIO()

In [52]: w=csv.DictWriter(sio, [1,2,3,4], restval='')

In [53]: w.writerow({1:"eins",2:"zwei"})

In [54]: w.writerow({1:"eins",3:"drei"})

In [55]: print sio.getvalue()
eins,zwei,,
eins,,drei,


problem ist nur, dass man vorher schon wissen muss wieviele spalten man maximal hat.
problembär

Beitragvon problembär » Samstag 9. Mai 2009, 20:16

Also, ich würd' mir sowas selbst schreiben.
Und gleich ein paar Methoden für "Lesen von Excel" und "Schreiben nach Excel" (beides über win32com) dazufügen.
Könnte auch ein ganz nettes Modul werden.

Gruß
Benutzeravatar
Dill
User
Beiträge: 470
Registriert: Mittwoch 10. Januar 2007, 14:52
Wohnort: Köln

Beitragvon Dill » Samstag 9. Mai 2009, 21:41

hört sich interessant an.
die excel-api ist ja sehr schön. da könnte man easy neben den daten (in csv) auch die wichtigsten attribute der tabelle, spalten, zeilen und zellen lesen (und schreiben)

die frage ist nur: was fängt man damit an?
BlackJack

Beitragvon BlackJack » Sonntag 10. Mai 2009, 10:42

Bevor man etwas selber schreibt, was dann wirklich von Windows und installiertem Excel abhängig ist, könnte man sich auch `pyExcelarator`, und `xlrd` und `xlwt` anschauen.

Ansonsten wäre ein, von Excel unabhängiges, Tabellenmodell sicher interessant, aber das hat man sich halt immer recht schnell selbst implementiert, wenn man es mal braucht.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder