Redirection
sh can redirect the STDOUT and STDERR of a process to many different types of targets, using the _out and _err special kwargs.
Filename
If a string is used, it is assumed to be a filename. The filename is opened as “wb”, meaning truncate-write and binary mode.
import sh
sh.ifconfig(_out="/tmp/interfaces")
See also
File-like Object
You may also use any object that supports .write(data)
, like
io.StringIO
:
import sh
from io import StringIO
buf = StringIO()
sh.ifconfig(_out=buf)
print(buf.getvalue())
Function Callback
A callback function may also be used as a target. The function must conform to one of three signatures:
- fn(data)
The function takes just the chunk of data from the process.
- fn(data, stdin_queue)
In addition to the previous signature, the function also takes a
queue.Queue
, which may be used to communicate programmatically with the process.
- fn(data, stdin_queue, process)
In addition to the previous signature, the function takes a
weakref.ref
to the OProc object.
See also
See also