IPython shell assignment (the !
operator) evaluates a command using the local shell (e.g., bash
) and returns a string list (IPython.utils.text.SList
). An SList
is a list-like object containing "chunks" of stdout and stderr, properties for accessing those chunks in different forms, and convenience methods for operating on them.
The SList.ipynb
notebook below uses SList
properties to access the output of a shell command as a list-like of strings, a newline-separated string, a space-separated string, and a list of pathlib.Path
objects. The notebook then uses the SList.fields()
and SList.grep()
methods to extract columns from and search command output.
You can take advantage of the properties and methods of an SList
to transform shell output into forms more amenable to further operations in Python.
See the IPython documentation about Shell Assignment for examples of executing shell commands with optional Python values as inputs. See the IPython documentation about String Lists for additional demontrations of the utility of SLists
.
Thanks, this was useful!