csv Datei mit import cvs

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
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

Python bietet 1 elegante Moeglichkeit um csv_dateien zu behandeln.
csv Dateien werden immer verbreiteter und daher wollte ich mal ein Beispiel bringen und erklaeren, wie und was da los ist.
Das Beispiel ist hier;
http://www.python-forum.de/pastebin.php?mode=view&s=64
Genauso ist es moeglich 1 zweite Liste einzulesen und Listenelemente der 2 Listen zu vergleichen und Ergebnisse auszuwerten.
Man kann auch- mit der csvBIB- als Feldbegrenzer das Komma , oder Excel trenner nehmen.
Ich hab gestern mal eben eine Adressendatei fuer mein Handy erzeugt und die dann mit Bluetooth auf mein Handy geladen
Wenn da Interess besteht, kann ich das mal zeigen in Python, ist total leicht.
Guude!
Fritz :idea: :idea:
Zuletzt geändert von 3ff am Freitag 10. September 2010, 09:38, insgesamt 1-mal geändert.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

3ff hat geschrieben:csv Dateien werden immer verbreiteter [...]
Da habe ich einen komplett anderen Eindruck. Was bringt dich zu der Ansicht?
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@ /me
weil sie total leicht zu handhaben sind. Wir haben frueher Messwerte ausgewertet mit den Stringfunktionen der C-Library. Das ging auch, aber es war nicht so einfach.
Nimm die Tabellenkalkulation heutzutage.
Das ist in Excel oder Openoffice mit den CSV-Dateien einfach.
Ich rede jetzt nicht ueber 1 Mio++ Datensaetze sonder kleine Dateien, Messreihen etc.
In Python kann man das auch pickeln, aber dann wird es schon wieder unuebersichtlicher.
Es gibt in DE eine bekannte Firma, die liefern die Fritzbox und Bausaetze und Boards fuer Microkontroller.
Die gibts auch von anderen namhaften Herstellern besonders in USA ist das sehr verbreitet.
In 1nem dieser Softwarepakete ist gleich ne Erzeugung von csv-Dateien drin.
Aufbauen, Versuch starten und nach Ende die Messwertreihen abholen.
Fertig!
Guude!
Fritz :!: :!:
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Ich teile die Ansicht von /me.

CSV hat seine Berechtigung und seine Tätigkeitsfelder und ist dort als Möglichkeit etabliert.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@jbs
/me hat einen Eindruck vermittelt. Wo ist denn die Ansicht? Deine Ansicht wuerd mich interessieren.
Kritik, Bedenken, Erfahrungen!
Fritz
:?: :?:
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Nuja, CSV ist eben gut, wenn es sich um immer gleich strukturierte, Tabellenartige Daten handelt. Kommt etwas mehr Struktur hinein, so würde man sicherlich ein Markup bevorzugen, welches mehr Semantik bietet also ein "Trenner"-Symbol ;-)

@Code:

- atoi ist deprecated
- print wird mal als Funktion, mal als Statement geschrieben; da wohl augenscheinlich Python2 benutzt wird, sollte man die Klammern in Zeile 17 entfernen
- Man sollte die Beispieldaten in den Quellcode reinschreiben und dann mit StringIO arbeiten; so hat man die Daten in einer Datei
- selbiges gilt auch für die finale Ausgabe
- die Kommentare hinter eine Codezeile zu setzen sieht häßlich und unübersichtlich aus
- Modulkommentare sollten doch afaik nur ganz oben in einem Modul stehen, oder?
- She-Bang und Coding-Angaben fehlen

Frage: Schließt ein reader / writer-Objekt eigentlich ein File-Objekt selbständig? Aus der Doku ist das explizit nicht ersichtlich - oder bin ich blind? Da man ja jedes beliebige Iterable Objekt verwenden kann, das Strings bei next() zurückgibt, würde ich hier ja mal stark auf nein tippen. Andererseits wird in den Beispielen auch nur ein anonymes Objekt via open() generiert. Insofern bitte ich hier mal die Kundigen um Aufklärung :-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
BlackJack

@Hyperion: Die Dateien werden nicht con den `csv`-Objekten geschlossen.

Ergänzend zu Deinen Punkten:

- PEP8 wird grosszügig ignoriert.
- `f` ist ein nichtssagender Name.
- `infile` und `outfile` werden nicht an Dateiobjekte sondern an Dateinamen gebunden; das ist irreführend.
- Das ``f = []`` eine leere Liste an `f` bindet ist nun wirklich nicht kommentierenswert.
- In Zeilen 8-11 sind die Kommentare inhaltlich wirr bis schlicht falsch.
- Sehr sinnvoll ist das was in den Schleifen getan wird im Allgemeinen auch nicht. Es sollte zumindest irgendwo erklärt werden was das Programm eigentlich tut. Mit der `extend()`-Methode auf Listen kann man sich die innerste Schleife sparen.
- Wie kommt man darauf so etwas wie ``0+4`` in den Quelltext zu schreiben!?
- Die Zeile geht sowieso kürzer, denn das ist das gleiche wie ``print int(f[4]) * 2``.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

BlackJack hat geschrieben:@Hyperion: Die Dateien werden nicht con den `csv`-Objekten geschlossen.
Dann sind die Beispiele in der Doku aber verbesserungswürdig, oder sehe ich das zu kritisch?
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

@3ff: Am besten machen sich Messwerte in einer Textdatei, die man mit "numpy.loadtxt" (bzw. "numpy.genfromtxt") lädt und mit "numpy.savetxt" speichern kann. Tabellenkalkulationsprogramme sind zur Verarbeitung von Messwerten auch eher ungeeignet. Wenn man eine GUI benutzen möchte, gibt es genug Alternativen.

Grüße
Gerrit
3ff
User
Beiträge: 191
Registriert: Dienstag 22. Dezember 2009, 12:54
Wohnort: Odenwald Sued-Hessen

@gkuhl,
es stimmt, aber csv-dateien werden nunmal von dem Entwicklungssystem produziert.
Was die Struktur angeht, ist man natuerlich an 1 Schema gebunden.
Der Aufbau, also die Dateistruktur ist starr.
Finden, Einfuegen etc. ist natuerlich auch schlecht, dafuer sind aber Datenbanken gemacht worden.
Guude!
Fritz
8) 8)
Antworten