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
csv Datei mit import cvs
@ /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
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
Ich teile die Ansicht von /me.
CSV hat seine Berechtigung und seine Tätigkeitsfelder und ist dort als Möglichkeit etabliert.
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]
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
- 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
@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
assert encoding_kapiert
@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``.
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``.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Dann sind die Beispiele in der Doku aber verbesserungswürdig, oder sehe ich das zu kritisch?BlackJack hat geschrieben:@Hyperion: Die Dateien werden nicht con den `csv`-Objekten geschlossen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
@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
Grüße
Gerrit
@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
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