subprocess mit Argumenten aus Variablen

  • [font="Calibri"] [/font]
    [font="Calibri"] [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Hallo,[/font]
    [font="Calibri"] [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]ich möchte ein Script bauen, welches verschiedene andere Scripte ausführt. Der Hintergrund sind verschiedene Sensoren die abgefragt werden. Jeder Sensor hat sein eigenes Script, und es gibt ein Script 'ReadSensors.py' welches diese alle ausführen soll. Die verschiedenen Scripte stehen in einer CSV Datei und ebenfalls die Argumente die an die Sensore-Scripte übergeben werden sollen.[/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Das klappt auch soweit schon alles, das was ich nicht hinbekomme ist die Übergabe der Argumente.[/font]
    [font="Calibri"] [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]In der Variablen sProcessCall steht der Aufruf, z.B. "python /aqua/sensors/cpu_temp.py" und in der Variabel sReadArgument das Argument, zb. "2".[/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Die Scripte geben die gelesenen Werte aus, daher habe ich den aufruf subprocess subprocess.check_output() genommen. [/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Der Aufruf ist dann wie folgt:[/font][font="Calibri"] [/font]
    [font="Calibri"]result = subprocess.check_output([sProcessCall, sReadArgument], shell=True)[/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Aber es funktioniert nicht dass das Argument bei dem SCript ankommt![/font]
    [font="Calibri"] [/font]
    [font="Calibri"]Ich hoffe ich konnte mein Anliegen verständlich formulieren und das mir geholfen werden kann.[/font]
    [font="Calibri"] [/font]
    [font="Calibri"] [/font]

  • Hallo,

    wenn du ein Python-Skript aus einem anderen Python-Skript heraus mit `subprocess` ausführst, dann ist das in 99,9% der Fälle "broken by design".

    Importiere die Python Skript im "Hauptskript" und rufe die Funktionen aus den Skripten dann auf.

    Zitat

    Die verschiedenen Scripte stehen in einer CSV Datei und ebenfalls die Argumente die an die Sensore-Scripte übergeben werden sollen.


    Äh... das ist ein ... sehr sehr sonderbares Vorgehen. Warum speicherst die die Python-Skripte nicht in einzelne Datei - so wie man das halt normalerweise macht.

    Gruß, noisefloor

  • Danke für deine Antwort!

    In der CSV Datei stehen die Pfade zu den Scripten, nicht die Scripte als solches.

    Auch wenn ich direkt, also ohne die Variablen den Aufruf so schreibe wie oben genannt funktioniert es nicht das die Argumente an dem durch subprocess aufgerufenen Script ankommen.

Jetzt mitmachen!

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