Jorge Torres Arboleda
Pregunta¿Para qué sirven los símbolos " % " y " ! " en comandos como " %cd " y " !ls " si cd, ls y mkdir parecen cumplir la misma función?

Edward Giraldo Martínez
Encontré este tutorial dónde explica como se llaman, para que se usan, entre otras cosas más.
La cuestión es que no es impresindible ponerle o no % (en algunos casos)
👾
Jorge Torres Arboleda
Ejecuté esas líneas en colab en el cuaderno de bienvenida, no me da para insertar la captura pero los resultados fueron:
ls >sample_data/ cd sample_data/ >content/sample_data/ ls >anscombe.json* mnist_test.csv california_housing_test.csv mnist_train_small.csv california_housing_train.csv README.md*
Puedes ensayarlo, el ls después de usar cd, muestra el contenido del directorio donde se está ubicado, de hecho eso se puede ver en la captura que ya había subido donde luego de entrar en drive me muestra su contenido, que es la carpeta 'My Drive'

Alejandro Cuello Maure
También es por que usando el % el ambiente entiende que quiere que se "aplique la ejecucion y se mantenga el cambio" , se que esto suena a chino pero al momento de usar el cd para cambiar de carpeta, lo que hace es solo hacer esa accion pero no guardar el cambio o sea solo te mostrará que la nueva carpeta por un tiempo pero en realidad no se hizo la acción.
Ejecuta estas lineas en el google colab:
cd alguna_carpeta/
y despues
ls > alguna_carpeta/ # esperabamos que saliera los archivos de la nueva carpeta # pero no sucede por que no se guardo el cambio de # carpeta
En cambio con el % le decimos al notebook que ejecute esta accion y se mantenga el cambio hecho
Jorge Torres Arboleda
AlejoCm, si fuera por comodidad simplemente sería más cómodo no usar % dado que, como muestro en el comentario de antes, también funciona.

Alejandro Cuello Maure
Con python se puede acceder a los archivos como si estuvieramos con shell importando la liberia os que se encarga de comunicar el sistema operativo con python.
import os # para listar directorios os.listdir() # para cambiar os.chdir('tu/ruta/')
Pero usando el
%

JIMMY ALEXANDER CRUZ QUINTERO
Como se esta trabajando en un notebook, en colab o jupyter, es necesario decirle a la herramienta que se va a ejecutar un comando del sistema operativo.
Jorge Torres Arboleda
Pero no "se tiene que usar", al usarlos sin "%" y "!" también funcionan:
Erik Ochoa
Es porque así se tiene que usar los comandos de shell en Colab, recuerda que estamos programando en python, esto no sería posible a no ser por la librería IPython.