【问题标题】:What is the difference in using ! and % before a python command? [duplicate]使用有什么区别!和 % 在 python 命令之前? [复制]
【发布时间】:2021-12-25 11:03:26
【问题描述】:

我知道在 python 中的命令使用终端运行命令之前使用!

例如:

!ls
!unzip zippedfile.zip

但是,我注意到使用 % 也适用于某些 bash 命令,但不适用于其他命令。

所以

%ls

会起作用,但是

%unzip

不会工作。

这两个前缀有什么区别?

【问题讨论】:

  • 什么是“python 命令”?你这里的例子都不是python。

标签: ipython google-colaboratory


【解决方案1】:

! 转义符运行外部 shell 命令,例如 ping -c 3 www.google.com,而不是 Python 命令。 Python 或 ipython 不知道 ping 做了什么,它只是将控制权交给它,并显示它的输出。

% 转义运行 ipython 内置命令或扩展,即 ipython 本身可以理解的东西。

引用the documentation

用户可扩展的“魔术”命令。一组以 %%% 为前缀的命令可用于控制 IPython 本身,并为常见的系统 shell 命令提供目录控制、命名空间信息和许多别名。

这里的混乱来源可能是例如ls 可用作“魔术”命令以实现便携性和便利性。 (它是可移植的,因为它甚至可以在没有系统 ls 命令的平台上工作,例如 Windows。)

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2016-10-03
    • 2014-02-24
    • 2014-11-12
    • 2023-03-05
    • 2023-01-26
    相关资源
    最近更新 更多