В Jupyter Notebooks на Google Colab какая разница между использованием% и! запустить команду оболочки? - PullRequest
1 голос
/ 22 марта 2020

Вопрос в названии.

Я знаю, что % обычно обозначает «переменную magi c» в I Python. Это не та концепция, с которой я до сих пор ужасно знаком, но я читал об этом.

Однако сегодня я увидел учебник, в котором кто-то использовал его для запуска команды оболочки. Обычно я видел и использовал !.

Есть ли разница? Оба, кажется, делают то же самое, когда я их пробую.

1 Ответ

1 голос
/ 22 марта 2020

Разница в следующем:

  • Когда вы запускаете команду с !, она непосредственно выполняет команду bash в подоболочке.

  • Когда вы запускаете команду с %, она выполняет одну из маги c команд , определенных в I Python.

Некоторые команд magi c, определенных I Python, намеренно отражают команды bash, но они отличаются деталями реализации.

Например, выполнение команды !cd bash не меняет постоянно ваш каталог, потому что он работает во временной подоболочке. Однако выполнение команды %cd magi c будет постоянно изменять ваш каталог:

!pwd
# /content

!cd sample_data/
!pwd
# /content

%cd sample_data/
!pwd
# /content/sample_data

Подробнее в I Python: Встроенные волхвы c Команды .

...