Hallo,
ich habe ein Problem,
im Zuge einer zu verfassenden Arbeit muss ich eine CSV Tabelle (mit vielen Tausenden
Einträgen) mit Python auslesen können, dass Format der Tabelle lässt sich ja an sich recht
universell ändern. Jedoch fehlt mir die nötige Erfahrung und Intelligenz, ein Modull zu
verwirklichen, dass diese Arbeit übernimmt.
Daher nun die Frage an euch,
hat schon mal jemand etwas ähliches Programmiert oder kann mir auf die Sprünge helfen?
Schonmal im Voraus Danke
Auslesen von Tabellen mit Python
Viele Leute haben sowas schon öfter programmiert. Standardsuchort für Python-Module ist http://www.vex.net/parnassus , scheint aber gerade down zu sein. Aber selbst wenn Du bei google mal 'Python' und 'CSV' eingibst, bekommst Du viele Links zu entsprechenden Modulen präsentiert.TrickBen hat geschrieben: ...im Zuge einer zu verfassenden Arbeit muss ich eine CSV Tabelle (mit vielen Tausenden
Einträgen) mit Python auslesen können...
...hat schon mal jemand etwas ähliches Programmiert oder kann mir auf die Sprünge helfen?
Falls Du es doch selber machen willst, melde Dich noch mal.
Jörg
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Mal wieder meine Erfahrungen aus Delphi. Da geht soetwas ganz einfach mit TStrings.
In QT gibt es QStringList, welche eine ähnliche Funktion drin hat.kann eine aus einer Datei gelsene Zeile in die einzelnen Felder zelegen.
Hans
In QT gibt es QStringList, welche eine ähnliche Funktion drin hat.
Code: Alles auswählen
QStringList::split ( const QString & sep, const QString & str, bool allowEmptyEntries = FALSE )
sep = Seperator, z. B. ','
str = zu zerlegender String
allowEmptyEntries = leere Felder (zwei aufeinander folgende Kommas) sind nicht erlaubt
Hans
Hallo!
Jan
Wenn aber QStringList::split() ähnlich simpel gestrickt ist, wie string.split(), hilft das bei CSV-Dateien nicht viel, da Daten in Anführungsstrichen Kommata enthalten können, die string.split() gnadenlos als Trenner interpretiert.hans hat geschrieben:QStringList::split (
Jan
-
- User
- Beiträge: 728
- Registriert: Sonntag 22. September 2002, 08:32
- Wohnort: Sauerland
- Kontaktdaten:
Ich muß dir leider recht geben. Ich hatte bis zur Stunde QStringList noch nicht ausprobiert. Jetzt weiß ich, dass es so nicht geht. Aber es müßte doch ein leichtes sein, eine Textzeile einzulesen, und diese Byte für Byte zu untersuchen. Das erste Anführungszeichen schaltet die Trennung bei Komma aus, das zweite Anführungszeichen wieder zu.Voges hat geschrieben: Wenn aber QStringList::split() ähnlich simpel gestrickt ist, wie string.split(), hilft das bei CSV-Dateien nicht viel, da Daten in Anführungsstrichen Kommata enthalten können, die string.split() gnadenlos als Trenner interpretiert.
Wie sieht die Regel eigentlich aus, wenn Textfelder Anführungszeichen enthalten?
Und was macht Ihr bei deutschen Computern mit 1,2? Das soll eine Dezimalzahl sein. Die Amis haben es da mit 1.2 leichter.
Hans
Hallo!
- Enthält ein Datenfeld ein Komma, wird das Datenfeld in Anführungszeichen eingeschlossen.
- Enthält ein Datenfeld ein Anführungszeichen (als Teil der Daten), wird diesem Anführungszeichen ein weiteres Anführungszeichen vorangestellt und das Datenfeld in Anführungszeichen eingeschlossen. Beispiel
Es gibt einige CSV-Module für Python. http://object-craft.com.au/projects/csv/ sieht z.B. ganz gut aus.
Jan
Wohl die wichtigsten Regeln:hans hat geschrieben:Wie sieht die Regel eigentlich aus, wenn Textfelder Anführungszeichen enthalten?
Und was macht Ihr bei deutschen Computern mit 1,2? Das soll eine Dezimalzahl sein.
- Enthält ein Datenfeld ein Komma, wird das Datenfeld in Anführungszeichen eingeschlossen.
- Enthält ein Datenfeld ein Anführungszeichen (als Teil der Daten), wird diesem Anführungszeichen ein weiteres Anführungszeichen vorangestellt und das Datenfeld in Anführungszeichen eingeschlossen. Beispiel
Code: Alles auswählen
aus 1 1,34 2342 wird 1,"1,343",2342
aus 3 abc"def 5432 wird 3,"abc""def",5432
Jan