Wie man einen String an die stdin einer Executable mit invoke.run() in Python übergibt

In unserem vorherigen Beispiel Wie man stdout mit invoke.run() in Python in einen String umleitet haben wir gezeigt, wie man invoke.run(..., out_stream=...) verwendet, um stdout in ein StringIO umzuleiten, das dann in einen String konvertiert werden kann.

Ebenso können wir einen String an die stdin des Subprozesses übergeben, indem wir ihn zuerst in ein StringIO konvertieren und dann invoke.run(..., in_stream=...) verwenden.

invoke_pass_stdin_example.py
stdin_str = "abc123" # what we want to pass to stdint

stdin_io = StringIO(stdin_str)
result = invoke.run("myexecutable", in_stream=stdin_in)
# ...

Check out similar posts by category: Python