Pipe Ipython salida mágica a una variable?

Quiero ejecutar un script de bash en mi ipython Notebook y guardar la salida como una cadena en una variable de python para una mayor manipulación. Básicamente quiero canalizar la salida de la magia bash a una variable, por ejemplo, la salida de algo como esto:

%%bash some_command [options] foo bar 

¿Qué hay de usar esto?

 myvar = !some_command --option1 --option2 foo bar 

En lugar de la magia %%bash ? Usando el ! El símbolo ejecuta el siguiente comando como un comando de shell y todos los resultados se almacenan en myvar . Para ejecutar varios comandos y recostackr la salida de todos ellos, simplemente arme un script de shell rápido.

Para completar, si aún desea utilizar la magia de celda de %%bash , puede pasar las --out y --err para redirigir las salidas del stdout y stderr a una variable de su elección.

De la doucumentación :

 %%bash --out output --err error echo "hi, stdout" echo "hello, stderr" >&2 

almacenará las salidas en las variables de output y error para que:

 print(error) print(output) 

imprimirá a la consola de python:

 hello, stderr hi, stdout 

Observe la diferencia en el tipo de variable entre las respuestas @MattDMo ( SList ) y @oLas ( str ):

 In [1]: output = !whoami In [2]: type(output) Out[2]: IPython.utils.text.SList In [3]: %%bash --out output ...: whoami In [4]: type(output) Out[4]: str