Python lernen

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Zusammen :)

    Bevor ich nun einen Haufen Geld und Zeit für "Blödsinn" ausgebe, frage ich mal hier die Meinungen ab ;)

    Mittlerweile bin ich ganz begeistert von diesen kleinen Computern. Vor allem, dass ich wieder das machen kann, was ich schon immer gerne gemacht habe. Messen und Auswerten.

    Leider habe ich NULL Ahnung von Python. Ich kann VB, und somit kann ich mich an einigen Stellen relativ schnell in Codeschnipsel reindenken, jedoch scheitert es bei oft an der Sprache der Dokumentation. In VB bekomme ich zu allen wichtigen Bibliotheken eine mehr oder weniger gut zu gebrauchende Übersetzung in Deutsch.

    Derzeit stecke ich fest, dass ich ein Prozess aufrufen möchte, der mir in (un-)regelmäßigen abständen Daten liefert, und ich diese Daten dann aufbereiten möchte, um diese dann weiterzu bearbeiten (abhängig von den eingehenden Daten). Hierzu habe ich nun os und subprocess gefunden. subprocess schein genau das richtige zu sein, jedoch ist die Dokumentation in Deutsch nicht für meinen Fall zu ergoogeln. Ich finde immer nur Anleitungen, wo der aufgerufene Prozess ein Ende hat, und das habe ich nicht :/

    Also brauche ich ein "Anfängerbuch" wo auch dieser Aspekt ausgiebig erläutert wird.

    Zu meiner derzeitigen Ausstattung gehören:

    (aus alten Zeiten)

    VB - Programmierung von Michael Kofler
    VB - Programmierung von Jürgen Bayer (das Script zum Buch waren 2 Jahre Schulung bei Ihm :) .. .schöne Zeit)
    PHP3 (Markt und Technik Verlag)

    Neu

    Raspberry Kochbuch (O'Reilly)

    Raspberry "Machs Einfach"

    RaspberryPi Das umfassende Handbuch (Kofler, Kühnast und Scherbeck)

    so wie das Allgemeinwerk "Unix System Administaration" aus dem O'Reilly Verlag

    Von der Didaktik her mag ich den Stil vom Michael Kofler :)

    Für Vorschläge sage ich

    :danke_ATDE:

    Einmal editiert, zuletzt von OddSilence56140 (15. April 2019 um 13:21)

  • > dass ich ein Prozess aufrufen möchte, der mir in (un-)regelmäßigen abständen Daten liefert,

    > und ich diese Daten dann aufbereiten möchte, um diese dann weiterzu bearbeiten (abhängig

    > von den eingehenden Daten).

    Bei derart praezisen Anforderungen ist es einfach zu antworten:

    * irgendwas irgendwie starten

    * die Daten von irgendwas irgendwie auswerten

    * und irgendwie weiterbearbeiten

  • Hallo,

    also alle (mir bekannten) deutschsprachigen Bücher haben mehr oder minder viele Unzulänglichkeiten. Und `subprocess` - was sich in der Tat richtig für deinen Anwendungsfall scheint - da eher nicht vorkommt, weil das für's Lernen eher irrelevant ist.

    DIE Sprache der IT-Dokumentation ist nun mal Englisch, so auch bei Python. Deswegen muss du immer bei jeder Programmiersprache irgendwann auf englisch umschwenken, sonst kommst du nicht weiter. Du musst es ja "nur" lesen, nicht sprechen oder schreiben.

    Im Falle von Python ist docs.python.org der Startpunkt für die. Da gibt's a) das offizielle Tutorial, was 1A zum Lernen von Python ist, und b) die Doku zum `subprocess`Modul.

    Ansonsten gilt:

    Hier im Forum deinen Code zeigen (egal wie gut oder schlecht), beschreiben was nicht funktioniert wie erwartet, dann wird geholfen.

    Gruß, noisefloor

  • ja, irgendwas, irgendwohin ...

    Genau das ist es was ich will ..

    Mal möchte ich Abstände wissen ...

    Mal Temperaturen

    Mal Drücke

    Mal den Verlauf über die Zeit anzeigen lassen

    Mal nur Daten in eine DB Speichern

    Mal Daten an ein Display senden

    Aber alles kommt aus laufenden Prozessen die ICH auswerten möchte. Jenach dem wozu mir gerade ist. Und hierzu ist es erforderlich etwas zu verstehen, wenn man damit bastelt.

    Ich frage in einem Autoforum auch nicht danach, wie ich die Zündzeitpunkte einstelle, wenn ich von der Technik keine Ahnung habe. Da würde mir dann das Buch "Mach es Selbst" helfen ... Denn das ist fundiert ...

    Wenn ich nur einen "schnipsel" habe möchte, dann frage ich danach, jedoch muss ich diesen Schnipsel dann auch in und auswendig verstehen. Und genau das suche ich ...

    Somit ist nicht meine Anfrage "Blödsinn" die "gemaßregelt" werden sollte, sondern die Antwortwort auf den "Blödsinn"

    Da kommt der Post von noisefloor schon eher entgegen was angefragt wurde. Danke !

    Ich stimme Dir zu, es ist üblich Englisch zu nutzen, auch schon als ich in diese Materie eingetaucht bin.

    Jedoch im Gegensatz zu damals sitze ich nun allein hier, und habe niemanden mehr um mich herum, den ich fragen kann. Und wenn man nicht regelmäßig Englisch spricht, dann geht verdammt schnell verdammt viel verloren, wenigstens ist es bei mir so.
    Ich kann zwar diese Anleitung "übersetzen", aber nicht "verstehen". Daran scheitert es bei mir.

    Somit sind "Schnipsel" auch immer so eine Sache. Ich habe zu ALLEN meinen "Problemen" Anleitungen gefunden, jedoch keine funktioniert, da immer etwas angepasst werden muss. Und da müsste ich "verstehen" was man von mir möchte :)

    Und das klappt nicht in einem Forum. Denn die Hilfestellung die man benötigt sollte (meiner Meinung nach) in Sitzungen er-/ge-klärt werden, wo Audio und bestenfalls auch Video zur Verfügung steht (IRC-Chat oder TS oder sowas). Leider gibt es jedoch immer weniger gute Anlaufstellen dieser Art. Ich weiß, OldSchool, aber sau geil ....

    Ich schau mal, ob noch Vorschläge kommen, sonst werde ich mal Deinem Rat folgen, und entsprechende neue Anfragen im Brett Programmierung eröffnen.

  • Aber alles kommt aus laufenden Prozessen die ICH auswerten möchte.

    Ich hab auch schon ein paar Dinge programmiert. Irgendeinen fremden Prozess anzuzapfen und dort Daten abzugreifen ist schon ganz schön verwegen. Mit os oder subprocess startest Du IMHO die externen Programme, dranhängen an einen laufenden Prozess wird da nichts. Ich bin ganz bei

    Hier im Forum deinen Code zeigen (egal wie gut oder schlecht), beschreiben was nicht funktioniert wie erwartet, dann wird geholfen.

    Mach es konkret und dann kann Dir sicher jemand Tipps und Hinweise geben. Schwammige Fragestellungen provizieren schwammige Antworten, wenn überhaupt. Mach Dir Gedanken, was konkret funktionieren soll. Und wie. Gibt ja genügend Menschen hier, die viel Erfahrung mitbringen.

    Und das klappt nicht in einem Forum. Denn die Hilfestellung die man benötigt sollte (meiner Meinung nach) in Sitzungen er-/ge-klärt werden, wo Audio und bestenfalls auch Video zur Verfügung steht (IRC-Chat oder TS oder sowas). Leider gibt es jedoch immer weniger gute Anlaufstellen dieser Art. Ich weiß, OldSchool, aber sau geil ....

    Das hat nichts mit oldschool zu tun. Also school dann eher schon: Du meinst eindeutig einen Lehrgang, den es dann aber auch zu honorieren gilt. * Hier im Forum treffen Menschen aufeinander, die ein gemeinsames Hobby eint. In ihrer Freizeit. Unbezahlt. Freiwillig. Wenn Du damit nicht klar kommst, dann geht es eben nicht. Einen Anspruch auf Unterstützung hast Du Dir mit Deinem ebenfalls kostenlosen Account nicht geschaffen. Niemand hier.

    Das Schöne ist ein Geben und Nehmen. Nahezu jeder kann noch etwas lernen.

    *)

    https://www.udemy.com/python-kurs/

    https://www.it-schulungen.com/seminare/softw…thon/index.html

    https://www.edukatico.org/de/report/pyth…en-online-kurse

  • Aber alles kommt aus laufenden Prozessen die ICH auswerten möchte. Jenach dem wozu mir gerade ist. Und hierzu ist es erforderlich etwas zu verstehen, wenn man damit bastelt.

    Was sind die die besagten Prozesse?

    Sind die Sensoren an den Pi angeschlossen?

  • Hallo,

    Zitat

    Aber alles kommt aus laufenden Prozessen die ICH auswerten möchte.

    Um schon mal direkt Enttäuschungen vorzubeugen: `subprocess` aus der Python Standardbibliothek kann _nicht_ mit bereits laufenden Prozessen kommunizieren. `subprocess` dient dazu, extern, i.d.R. nicht-Python Prozesse ,aus dem eigenen Skript heraus zu starten. Und _dann_ kann man mit denen auch interagieren.

    Wenn du mit einem laufenden Prozess "sprechen" willst musst du halt schauen, welche Schnittstellen der hat... D-Bus, Socket, /proc Dateisystem, /sys-Dateisystem etc.

    Zitat

    Und da müsste ich "verstehen" was man von mir möchte :)

    Du musst die Grundlagen lernen. 1. Wahl (immer noch): das offiziellen Tutorial auf docs.python.org.
    Es gab auch mal eine deutsche Übersetzung für Python 3.3. Das ist zwar EOL, aber zum Lernen der Datentypen etc. in Python 3 ist das immer noch ok, da hat sich nichts geändert im Vergleich zu Python 3.5/3.6/3.7.

    Gruß, noisefloor

  • So sorry ...

    aber wie stellt Ihr Euch das vor? Wenn ich meine Ideen hier einzeln durch gehe, und dabei lerne, dann kommt ein komplettes Script bei heraus, jedoch gespickt mit zig (multiplikator nach Wahl) Kommentaren, die des Lesens nicht wert sind.

    Jedoch merke ich auch, dass es etweder keine guten Bücher gibt,

    oder es gibt hier keine User, die Wert auf eine gutes Buch im Regal legen, um dort mal nach zu schlagen. (hmmm ... vielleicht doch OldSchool wie der IRC-Chat wo man sich nach der Arbeit, oder als Admin auch während der Arbeit rumgetrieben hat)

    Wenn ich ein Problem habe, dann komme ich schon .. keine Angst .. auch wenn nicht immer die Lösung gefunden wird, wie bei meinem openVPN Problem, jedoch werde ich dazu erst wieder Fragen stellen, wenn ich mehr Hintergrundwissen habe. Denn dafür fehlt es mir wohl auch noch.

    Oder ich schmeiße die ganze Scheiße einfach in die Tonne und nehme wieder meinen Block und Kugelschreiber ....

  • ja doch, Buch schon, aber das was du vorhast, funktioniert so nicht. Aber sag nicht wir hättens nicht gesagt...

    So mein Weg wie ich Python lernte:

    Als Editor und Entwicklungstool würd ich von anfang an PyCharm empfehlen


    Als Nachschlagewerk verwende ich meist diese 2 Bücher:

    https://www.rheinwerk-verlag.de/python-3_3789/

    https://www.amazon.de/Raspberry-umfassen...e handbuch [Anzeige]

    PS: Und wenn mit Python3 anfangen, nicht mehr Python2!

  • Hallo,

    Zitat

    Wenn ich meine Ideen hier einzeln durch gehe, und dabei lerne, dann kommt ein komplettes Script bei heraus, jedoch gespickt mit zig (multiplikator nach Wahl) Kommentaren, die des Lesens nicht wert sind.

    Hast du Vorurteile? Du hast noch keinen Code gezeigt, verurteilst aber schon die nicht vorhandenen Antworten. So kommst du nicht weiter.

    Zitat

    Jedoch merke ich auch, dass es etweder keine guten Bücher gibt, oder es gibt hier keine User, die Wert auf eine gutes Buch im Regal legen, um dort mal nach zu schlagen.

    Weder noch. "Fluent Python" ist ein richtig richtig gutes Python-Buch, sehr empfehlenswert. Nur a) auf Englisch (wie halt 99% der guten IT-Fachbücher) und b) definitiv keine Einsteigerlektüre.

    Zitat

    Oder ich schmeiße die ganze Scheiße einfach in die Tonne und nehme wieder meinen Block und Kugelschreiber ....

    Ja! Mit einer Kulimiene, einem Blatt Papier und der nötigen Präzision kann man ganz dolle Lochstreifen "stanzen" *SCNR*

    Gruß, noisefloor

    Einmal editiert, zuletzt von noisefloor (15. April 2019 um 20:01) aus folgendem Grund: Buchtitel korrigiert

  • Sorry, aber Du bastelst ein XY Problem, wunderst Dich, dass es keine Bücher für diese sehr speziellen Anforderungen oder Menschen, die diese ominösen Bücher besitzen, hier gibt. Nein, niemand hier wird Dir kostenlosen Einzelunterricht geben (siehe meine Anmerkungen oben), niemand stellt sich vor, wie Du Dir das Wissen drauf bringst - das ist ganz allein Deine Sache. Wie Du Struktur in Deine Wünsche kriegst - das ist ganz allein Deine Sache. Beides gern in Zusammenarbeit als Hilfe zur Selbsthilfe.

    Hilfe und Hinweise hast Du bereits und bekommst Du natürlich weiter gern. Wie das bei allen anderen auch so ist. Ach so, ganz allgemein folgt die Kommunikation hier den Regeln wie auch im richtigen Leben. Wald, rein - raus und so. Wenn ich die Aussage „Kommentare, die des Lesens nicht wert sind“ für mich deute, dann hast du Dir den goldenen „Plonk!“ damit verdient.

    Das Basteln und Pfriemeln mit Pi und Consorten soll Spaß machen, im Idealfall hat man dabei noch was gelernt. Niemand muss das tun. Auch Dich zwingt niemand. Und wenn’s keinen Spaß macht, wenn’s zu aufwendig scheint, zu viel, zu was-auch-immer: dann lass es einfach.

  • ...„Kommentare, die des Lesens nicht wert sind“ für mich deute, dann hast du Dir den goldenen „Plonk!“ damit verdient.

    Göttlich! :thumbup:

    @PromiseYou :

    Du hast bis jetzt nur wenige Beiträge geschrieben und bist schon voller Vorurteile.

    Beginne doch zunächst erst einmal, Python "an sich" zu erlernen, da zeichnet sich ab, wie der Weg zum Ziel aussehen könnte.

    U.U. kommt auch heraus, dass es mit Python allein nicht getan ist und du zusätzliche Bibliotheken (in C/C++/xyz) schreiben musst.

    Da du uns ja aktuell nur vage Häppchen an Infos herüber wirfst, wird es auch nur bei vagen Infos zurück bleiben.

    Bücher und Web-Tutorials (auch in deutsch) gibt es wie Sand im Meer... , mit den Suchbegriffen "python subprocess call" findest du massenhaft Infos...

    Verstehen wirst du das dort geschriebene allerdings erst, wenn du dir zumindest Grundkenntnisse in Python angeeignet hast.

  • Ich werfe niemanden etwas persönlich vor. Das die Lücken bei mir sind, ist mir ebenfalls klar.

    Ich habe ja auch ein paar Anregungen erhalten in den vorangegangenen Beiträgen (auf die Beiträge von hofei und noisefloor schaut).

    Es geht nur darum, dass es in meinem Fall es nichts "zu lösen" gilt, außer meinen Knoten im Gehirn.

    Wie ich geschrieben habe, besitze ich Kenntnisse in der Programmierung, bin also nicht ganz unbedarft.

    Jedoch habe ich dieses Wissen auf Windows gelernt, und das ist bereits über 15 Jahre her, das ich dies täglich gemacht habe. Und meine Linuxkenntnisse sind noch etwas älter.

    In dieser Zeit hat sich, wie ich bemerke, und mir auch vorher klar war, sehr viel geändert.

    Als ich diese Materie lernte, gab es durchaus sehr sehr viel Übersetzungen und Zusammenfassungen in Deutsch, und das ist weniger geworden, was auch verständlich ist, da an den Universitäten immer mehr ausschließlich auf englisch unterrichtet wird. Somit ziehe ich mir sicher nicht die Hose mit einer Kneifzange an.

    Ich habe mir einfach mal einen SDR-Empfänger gekauft, und nutze zur Textauswertung rtl_433. rtl_433 nutzt jedoch nur den std_out zur ausgabe (wenn ich das richtig verstanden habe). Es gibt auch ein "Tool" zum auslesen in python, aber das geht nicht.

    Und das möchte ich verstehen

    In einem anderem Script ist es mit os.popen gelöst, jedoch wurde dies durch subprocess abgelöst. jedoch benötigt subprocess eine Angabe, wie mit std_out und std_in umgegangen werden muss .. jedoch fehlt mir hier auch hintergrundwissen.
    Das sind so Themen die ich meine. In Den Anleitungen wird immer nur aus einer sehr eingeschränkten Sicht etwas beschrieben, und auch nur dieses beleuchtet. In einem gutem Buch gibt es hier oftmals gute Querverweise und Erklärungen aus angrenzenden Gebieten (kleine Exkursionen). Und oftmals sind es genau diese Exkursionen, die es mir KLICK machen lassen.

    Morgen kann es aber wieder ein ganz anderes Script sein, wo ich an Ecken komme, wo ich Stolper. Somit brauche ich kein "Grundlagenkurs" auf Bild-Zeitungs-Niveau (dafür gibt es genug .. nach Ausgabe von "Hello World" enden diese dann)

    Leider ist es mir in der Vergangenheit (also vor mehr als 10 Jahren) nicht gelungen in Foren diese Fragen zu klären, jedoch in IRC-Chats .... aber egal .. was Tod ist, kann man nicht wiederbeleben.

    Und mit Einstampfen meine ich, nicht den Pi in den Müll werfen

    Ich sehe den Pi als Werkzeugkiste, und die Software darin als die entsprechenden Werkzeuge.
    Nun stelle ich fest, dass es für viele Werkzeuge nur englische Anleitungen gibt, und ich sie deshalb nicht mehr nutzen kann. Was dann noch an Werkzeugen übrig bleibt, ist das alt bekannte, jedoch brauche ich dafür keine Werkzeugbox.
    Somit kaufe ich mir nun eine Holzplatte, und verwende die Kiste als Untersetzer und hab dann nen Tisch.

    Auf den Raspi übertragen. Ich kaufe mir eine fertige Software, und beschwere mich bei der Hotline wenn was nicht geht.

    Nein mal ehrlich, als ich damals meine Ausbildung zum Fachinformatiker begann, da konnte man wirklich fragen "Welche Bücher benutzt Ihr", und dann bekam man eine Liste von den Usern, welche Bücher sie nutzen, und oftmals ein kleines Review oder eine persönliche Anmerkung.

    Aber okay. ich weiß, dass ich mit Codeschnipsel hier antworten bekomme, jedoch Grundlegendes lieber anderswo abfragen sollte

  • Hallo,

    Zitat

    In einem anderem Script ist es mit os.popen gelöst, jedoch wurde dies durch subprocess abgelöst.

    Korrekt. `os.system` und `os.popen` ist veraltet.

    Zitat

    jedoch benötigt subprocess eine Angabe, wie mit std_out und std_in umgegangen werden muss ..

    Korrekt. Wenn du eine Instanz von `subprocess.Popen(...)` anlegst, hast du alle Möglichkeiten, mit dem Prozess zu kommunizieren, STDOUT des Prozesses zu lesen etc. Steht aber auch alles in der offiziellen Python-Doku zu `subprocess` erklärt, bei `subprocess` IMHO sogar recht ausführlich. Halt auf englisch... Sehr gute "hands on" Erklärungen findet man oft auch bei Stack Overflow - halt auf englisch.

    Oder, wie gesagt: programmieren, hinfallen, Code hier zeigen, Verbesserungen abholen, glücklich werden.

    Gruß, noisefloor

  • > Ich habe mir einfach mal einen SDR-Empfänger gekauft, und nutze zur Textauswertung rtl_433.

    > rtl_433 nutzt jedoch nur den std_out zur ausgabe (wenn ich das richtig verstanden habe). Es gibt

    > auch ein "Tool" zum auslesen in python, aber das geht nicht.

    Na also! Warum denn nicht gleich ?

    rtl_433 kann die Daten in ziemlich vielen Formaten auf den Disk schreiben. Und mit Python und matplotlib kann man diese Logs auch visualisieren: https://blog.heimetli.ch/rtl_433-unitec-matplotlib.html

  • Ich nochmal ;)

    Das Raspberry - Buch habe ich, das war ja mein "Einstieg",
    Werde mal zur lokalen Buchhandlung gehen, und schauen ob sie das Python 3 Buch haben. Scheint gut zu sein.

    Ist einer der beiden Taschenbücher empfehlenswert?

    Python: 3 Programmieren für Einsteiger: Der leichte Weg zum Python-Experten [Anzeige] von Michael Bonacina Taschenbuch

    Einstieg in Python: Programmieren lernen für Anfänger. Inkl. objektorientierte Programmierung… [Anzeige] von Thomas Theis Taschenbuch

    Und zu meinem "Problem" werde ich einem neuen POST erstellen, wo es auch nur um den rtl_433 geht. Denn ich denke, es sind nur geringe Anpassungen nötig, und dann kann ich den auch einsetzen wie ich möchte.

    rtl_433 kann die Daten in ziemlich vielen Formaten auf den Disk schreiben. Und mit Python und matplotlib kann man diese Logs auch visualisieren: https://blog.heimetli.ch/rtl_433-unitec-matplotlib.html

    hmmm .. vielen Dank auch hierfür, aber das ist es auch nicht, oder nur ein Teil daraus. denn an öffenen von csv Dateien habe ich auch bereits gedacht, bin aber dann etwas in schwierigkeiten gekommen, da ich (noch) nicht weiß, wie ich zuvor die betreffende Datei verschieben kann, bevor ich sie auswerte. (sowas wie ein tagesarchiv in RAW-Format).

    Jedoch gibt es da auch noch einen anderen Weg, die Ausgaben direkt in einem python-code weiter zu verarbeiten, aber dieses Script macht halt ärger *gg* Und das hat etwas mit dem std_out und std_in und PIPE zu tun ... und da ist scheinbar gerade mein Loch, was ich füllen wollte. Aber wie gesagt, das arbeite ich etwas auf, und versuche es dann übersichtlich in einem neuen Post darzustellen.

Jetzt mitmachen!

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