In our previous example How to capture stdout to string using invoke.run() in Python we showcased how to use invoke.run(..., out_stream=...)
to capture stdout to a StringIO which can then be converted to a string.
Similarly, we can pass a string to the sub-process stdin by first converting it into a StringIO
and then using invoke.run(..., in_stream=...)
.
stdin_str = "abc123" # what we want to pass to stdint stdin_io = StringIO(stdin_str) result = invoke.run("myexecutable", in_stream=stdin_in) # ...