Sensordaten in Textdatei schreiben

  • Hallo zusammen,

    ich bin RPi-Anfänger und stehe ganz am Anfang meiner Karriere.
    Ich schlage mich derzeit mit einem Problem rum und komme so nicht weiter.

    Ich habe am RPi einen Bewegungsmelder angeschlossen und führe diesen Code erfolgreich aus:
    Test Bewegungsmelder

    Ich möchte die Bildschirmdaten gerne in einer Textdatei speichern und stolper über diesen Code von der Homepage
    Datei speichern Code

    Code
    #Daten in Datei schreiben!
       fobj_out = open("ausgabe.txt","w")
       i = 1
       for line in fobj_in:
           print line.rstrip()
           fobj_out.write(str(i) + ": " + line)
           i = i + 1
       fobj_out.close()

    Ich bin leider nicht in der Lage beide Codes erfolgreich zu verknüpfen und zum laufen zu bekommen da mir der Weitblick fehlt wo ich was, wie und wo hinschreiben muss.

    Ich würde mich freuen wenn ich da an die Hand genommen werde!
    Gruß Katsche

  • Merk dir lieber jetzt als später: Nutze so gut es geht immer absolute Pfade.
    Warum? Weil du sonst nicht sicher sein kannst dass die Textdatei in dem von Dir erwartenden Verzeichnis erzeugt wird. Das ist leider mit der häufigste Fehler von Anfängern, denn es macht einen riesigen Unterschied ob man sich bei Ausführung im selbigen Verzeichnis wie das Script befindet oder das Script über ein Pfad ausführt.

    Der von dir kopierte Code ist eigentlich fürs Lesen gedacht, nicht fürs schreiben. Das Attribut "w" steht im übertragenen Sinne für "write". Du öffnest also die Datei im Modus "write", möchtest dann aber für jede Zeile etwas machen und schreibst die gleiche Zeile direkt noch mal in die selbe Datei, nur diesmal setzt du die Zeilenummer noch davor? :-/ Das wird sich so oder so kneifen da man nicht gleichzeitig die selbe Datei lesen und beschreiben kann.

    Wieso möchtest du das in eine Datei schreiben?
    Was soll das spätere Ziel werden?

  • Hallo,

    derzeit möchte ich gerne verschiedene Sensoren zum laufen bringen um so weiter meine Kenntnisse zu vertiefen wie alles funktioniert und die Codezeilen verstehen die dort hinterstehen.

    Ich denke ich spreche für viele wenn ich sage das es relativ einfach ist einen fertigen Code aus dem Netz zu saugen der etwas bestimmtes macht.... jedoch möchte man etwas umgestellt haben dann steht man auf dem Schlauch weil man eigentlich nicht versteht wie es funktioniert.

    Das Endziel das ich mit dem RPi bzw. meinen Projekt verfolge ist das ich einen RFID-Chip anschliesse und dieser jedes Mal die Chip-ID, das aktuelle Datum und Uhrzeit speichert wenn ich den Chip vor dem Gerät halte.

    Um tiefer ins Detail zu gehen.... es soll ein Programm ausgeführt werden und dabei eine LED dauerhaft leuchten wenn das Programm gestartet wird (quasi TEST-LED), hält man ein Chip vor dem Lesegerät sollen die Chipdaten + Uhrzeit ausgelesen werden sowie ein Piepton zu hören sein und eine grüne LED aufleuchten die das erfolgreiche auslesen bestätigt.

    Klingt an sich nicht schwierig, genügend Codes gibt es im Netz nur das richtige verknüpfen.... :@

    Einmal editiert, zuletzt von Katsche2 (27. November 2016 um 11:55)

  • Hallo Katsche,


    Klingt an sich nicht schwierig, genügend Codes gibt es im Netz nur das richtige verknüpfen.... :@

    Programmieren, so wie ich es in den vergangenen rund 35 Jahren verstanden zu haben glaube, besteht nicht darin, dass man sich im Internet an Code bedient und diesen unreflektiert zum Laufen bekommt. Denn dies ist relativ trivial.

    Programmieren besteht darin, sich Gedanken zu machen, wie man Aufgaben und Probleme der realen Welt in einer Sprache, die der Computer versteht, umformuliert. Letztlich geht es darum, einen Algorithmus (= schrittweise Vorgehensweise) zu ersinnen, um sich der Aufgaben anzunähern und nach mehreren Versuchen und Optimierungen eine plausible Lösung zu erhalten.

    Dazu ist es absolut erforderlich, dass man sich mit den Grundlagen irgendeiner Sprache, die der Computer versteht, soweit auseinandersetzt, dass einem das Denken und Formulieren in dieser Sprache nicht so ganz schwerfällt. Du wirst also nicht darum herumkommen, Dich mit irgendeiner Programmiersprache zu beschäftigen.

    Bücher und Tutorials gibt es mehr als ausreichend - und als Einstieg gleich Sensoren zu nehmen erschwert den Einstieg ungemein, wenn man wirklich dahintersteigen will, wie Programmieren funktioniert.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (27. November 2016 um 12:41)

  • Hallo,

    um noch an das von Andreas gesagt anzuknüpfen: Bei Python ist das offiziellen Python-Tutorial (https://docs.python.org/3/tutorial/index.html) immer ein guter Startpunkt. Das, was da drin steht, sollte man schon mindestens Wissen, WENN man halbwegs vernünftig mit Python Programmieren möchte.

    Im Tutorial gibt's auch ein Kapitel zum Lesen und Schreiben von Dateien.

    Gruß, noisefloor

  • Hi,

    ja, mit den Antworten hatte ich natürlich gerechnet und sind auch richtig.
    Bücher habe ich bestellt bzw. vorliegen.... Selbststudium ist halt nicht immer toll.

    Aller Anfang ist halt schwer :-/

  • Hallo Katsche,


    Hi,

    ja, mit den Antworten hatte ich natürlich gerechnet und sind auch richtig.
    Bücher habe ich bestellt bzw. vorliegen.... Selbststudium ist halt nicht immer toll.

    Aller Anfang ist halt schwer :-/

    Aber so haben die meisten, die jetzt > 50 Jahre alt sind, mal angefangen. Damals gab's kein Internet, kein eMail. Vielleicht Zeitschriften. Vielleicht Bücher. Aber wenn dann, sehr wenige Bücher.

    Heute dagegen kannst Du jede Informationsquelle nutzen. Es gibt in Buchhandlungen Dutzende an Büchern für etliche Propgrmmiersprachen. Im Internet gibt es zu fast jeder Programmiersprache ein Tutorial.

    Aber Programmieren fängt erst dann an, richtig Spaß zu machen, wenn Du nicht ständig nachschlagen musst, ob es zu irgendwas einen Befehl oder Konstrukt gibt oder wie das Zeugs jetzt angewendet werden soll.

    Was Dir hier irgendeiner an Programmierfragen löst oder beantwortet, vergisst Du ganz schnell wieder.

    Was Du Dir aber selber erarbeitet hast, vergisst Du nie wieder. OK. Alzheimer bildet eine Ausnahme...


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo Andreas,

    ich bin jetzt 42 Jahre alt und seit meiner Jugend war schon immer der Wunsch da eine Programmiersprache zu lernen um selber Programme schreiben zu können.
    Was auch immer ich in der Zwischenzeit gemacht habe es kam nie dazu jedoch seit gut ein paar Jahren steht der Wunsch wieder an.

    Oftmals fehlt mir die Zeit das intensiv zu lernen sowie brauche ich jemanden um mich herum der mir das anschaulich zeigt.
    VHS-Kurse in dieser Richtung im Raum Münsterland scheinen Mangelware zu sein.

    Ich könnte eine Anfrage bei Ebay stellen für Privatunterricht oder Schulen fragen ob es Projekgruppen gibt wo man sich einklinken kann.
    Es ist nicht so das es nicht lernen möchte jedoch Selbststudium ist ätzend dazu kommt das ich schnelle Erfolge brauche um nicht in ein Loch zu fallen und das Ganze uninteressant wird für mich.

    Seit vielen Jahren beschäftige ich mich mit MS-Access und VBA und überwiegend verwende ich fremden Code aus dem Internet und baue diesen nach meinen Bedürfnissen um (besser gut geklaut als schlecht erfunden!)... dieses ist oft von Erfolg gekrönt sodass ich das auch irgendwie mit Phyton hinbekommen möchte. Ich weiss das Copy&Paste-Bastler nicht gerne gesehen werden doch so ist ersteinmal meine derzeitige Strategie.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!