Variable an Python übergeben


  • ...
    Oha sieht ja kompliziert aus - was soll das ganze bewirken? Kann das nicht so recht nachvollziehen...
    ...


    Das stimmt. Es sieht kompliziert aus, ist aber recht trivial.


    Die Textdatei wird ausgelesen und eine Zeile (hier die Zeile 4 (von 0 gezählt)) geändert und zurück in die Datei geschoben. Es werden noch Leerzeichen/Zeilenumbrüche bearbeitet.
    Die Variante mit "fwrite" hatte ich auch probiert, funktionierte aber irgendwie nicht, kann mich aber nicht mehr daran erinnern. Es gab einen Grund.


    Später werden noch weitere Button folgen. Das schreiben in die Datei erfolgt dann natürlich über eine Funktion mit Übergabe von Parametern oder dergleichen. Das habe ich zu Testzwecken aber noch weggelassen. Weiter kann es auch vorkommen, dass mit einem Button mehrere Zeilen geändert werden müssen, somit kommt mir meine Lösung recht gelegen.


    Ich werde mal heute Nachmittag ein wenig weiterforschen.....

  • Hallo,


    endlich habe ich den Fehler gefunden.


    Mein Code war richtig. Ich habe meine Datei von *.html auf *.php umbenannt und nun läuft es.... :wallbash:


    Danke für deine Hilfe.

  • Hallo,
    ich hatte das Problem, eine String-Variable mit Sonder- und Leerzeichen aus Python an die Shell übergeben zu müssen und habe alles mögliche ausprobiert. Das Abfangen der Sonderfälle - eine einzige Eierei. Bin dann doch wieder bei der Dateivariante gelandet und schreibe diese in das Verzeichnis /run/shm, das eine (sehr kleine, aber ausreichende) "RAM-Disk" ist. Damit ist die SD-Karte aus dem Rennen. Die Datei ist nach dem nächsten Neustart logischerweise verschwunden.


    Ausgabe in Python:
    # encoding: utf-8
    ...
    fobj = open("/run/shm/temp.txt", "w")
    fobj.write(Stringvariable)
    fobj.close


    Wiederaufruf im Shellsript:
    #!/bin/bash
    IFS='
    '
    # vorhergehende 2 Zeilen ermoeglichen den Umgang mit Leerzeichen, Tabulatoren und Zeilenumbrüchen
    Stringvariable=$(cat /run/shm/temp.txt)


    Geht bestimmt eleganter, aber das ist ja nur eine Anregung. Ich mußte auch nur eine Zeile auslesen - das müßte man modifizieren.
    Grüße