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.
Ich versuche gerade das Grungerüst aufzubauen, damit ich später damit arbeiten kann.
Ich habe eine Curl Anweisung die ich aufsplitten und dann wieder zusammensetzen will.
Leider habe ich einen Syntax Fehler. Es ist mein erster Gehversuch, habe mir schon viel per Google zusammengesucht, jetzt brauche ich aber menschliche Hilfe.
Welche Python Version verwendest du?
Du solltest .format() auf Zeichenketten verwenden, um Variablen darin zu setzen.
Ich sehe in der Zeile, in der du eine Zeichenkette an den Namen "ipstrng" binden möchtest, nicht wo die Zeichenkette beginnt. Kann man hier bei dem Systaxhighlighting auch gut erkennen.
Edit: Übrigens hilft es allen (vor allem dir) weiter, wenn du Variablen gut und lesbar benennst. So ein verlorenes "i" in "string" wird dann schon einmal zum Stolperstein. Und "command" wäre richtig aussagekräftig.
Wenn Du curl verwenden willst, nimm pycurl. Ansonsten macht man das eher mit reinem Python per `requests`-modul. Konstante Strings per %s zusammenzusetzen, ist sehr unleserlich. XML baut man normalerweise nicht selbst, sondern benutzt z.B. ElementTree.
`ip` ist keine IP-Adresse sondern eine URL.
Hallöchen es hat ein ' am string gefehlt. ipstrng = '%s%s%s %s:%s%s' % (cmd1, key, cmd2, ip, port, url)
Die Abkürzungen sind angewohnheiten von der Arbeit aus.
Um zu erklären was ich hier mache. Mit dem Curl kann ich meinen Fernseher steuern. Ich muss nur den Keycode ändern.
Ich hatte es erst mit request versucht, was aber bei mir nicht klappte. Deswegen bin ich jetzt auf os umgestiegen.
Jetzt beendet sich das natürlich alles. Habe etwas von subprocess und call gelesen. Muss mich da jetzt reinlesen.
Ich möchte eine Fernbedienung nachbauen, damit ich ein Ziel beim lernen habe.
@Cino: Bei aktuellen Python 3-Versionen eher `subprocess.run()` statt `call()`. Das steht da dann aber auch in der Dokumentation. Aber letztendlich braucht man da keine externen Programme für, das kann man auch in Python lösen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Du solltest wirklich mit requests arbeiten. Das funktioniert garantiert, wenn du damit Probleme hast, ist es zielfuehrender diese Probleme zu loesen statt dich mit den Komplikationen von subprocess rumzuschlagen.
Ich habe es so verstanden, das mit os.system der ganze Prozess gekillt wird nach Aufruf und mit dem subprocess alles noch weiterläuft.
Mit dem request hatte bei mir nicht geklappt, ich habe einen Online Dienst benutzt gehabt der mir die Curl Anweisung in was pt verständliches umwandelt. Klappte nicht, vielleicht auch deswegen weil ich es auf Windows benutzt habe.
Das Programm läuft unter dem PI ohne Probleme, bei Windows habe ich schon wieder Syntaxprobleme im Terminal. Ich werde es bei gegebener Zeit mal mit dem request direkt auf dem PI probieren.