Ejecutar comandos
Para ejecutar comandos del sistema desde IPython simplemente tendremos que escribir los comandos anteponiendo el signo de exclamación "!". Ejemplos:
: !ls
: !ipconfig
: !copy archivo1.py archivo2.py
Capturar la salida de un comando en una lista
Cualquier salida de un comando se puede capturar en una lista Python
: lista = !dir
: for linea in lista:
...: print(linea)
...:
La lista capturada tiene algunas variantes: lista.n o lista.s devuelve una cadena delimitada por saltos de línea o espacios, respectivamente y lista.p muestra la ruta de los objetos.
: print(lista.n)
Dropbox logdeantonio Perfil TVenLinux VM
fondo Marcadores RedNoteBook Varios
Dropbox logdeantonio Perfil TVenLinux VM
fondo Marcadores RedNoteBook Varios
: print(lista.s)
Dropbox logdeantonio Perfil TVenLinux VM fondo Marcadores RedNoteBook Varios
Para obtener explícitamente este tipo de salida sin asignar a una variable se pueden utilizar dos signos de exclamación "!!" delante del comando o la función mágica %sx.
In [1]: !!dir
Out[1]:
['Dropbox logdeantonio Perfil\t TVenLinux VM',
'fondo\t Marcadores RedNoteBook Varios']
o bien
In [2]: %sx dir
Out[2]:
['Dropbox logdeantonio Perfil\t TVenLinux VM',
'fondo\t Marcadores RedNoteBook Varios']
Dropbox logdeantonio Perfil TVenLinux VM fondo Marcadores RedNoteBook Varios
Para obtener explícitamente este tipo de salida sin asignar a una variable se pueden utilizar dos signos de exclamación "!!" delante del comando o la función mágica %sx.
In [1]: !!dir
Out[1]:
['Dropbox logdeantonio Perfil\t TVenLinux VM',
'fondo\t Marcadores RedNoteBook Varios']
o bien
In [2]: %sx dir
Out[2]:
['Dropbox logdeantonio Perfil\t TVenLinux VM',
'fondo\t Marcadores RedNoteBook Varios']
Usar variables Python en comandos
Para pasar los valores de las variables o expresiones de Python a comandos del sistema debe ir precedidas con el signo "$".
: extension = "*.py"
: !dir $extension
IPython permite utilizar el valor de variables o expresiones de Python cuando se ejecutan comandos del sistema. Para ello deben expresarse entre llaves {}.
: import sys
: sistema = sys.platform
: !echo "Sistema operativo: {sistema}"
Sistema operativo: linux