当前位置: 首页 > article >正文

IPython 常用魔法命令

文章目录

  • IPython 魔法命令(Magic Commands)
    • 一、系统与文件操作
      • 1. `%ls`
      • 2. `%cd​​`和`%pwd`
      • 3. `%%writefile​​`
      • 4. `%run`
    • 二、性能分析与计时
      • 1. `%timeit`
      • 2. `%prun​​`
      • 3. `​​%%timeit`
    • 三、代码处理与交互
      • 1. `%load`
      • 2. `​​%edit`
      • 3. ​​`%store`
    • 四、调试与诊断
      • 2. ​​`%pdb`
      • 3. ​​`%who`
    • 五、扩展与工具集成
      • 2. ​`​%load_ext`
      • 3. ​`​%%html`和`%%javascript`
    • 六、信息查询与帮助
      • 2. `​​%lsmagic​​`
      • 3. ​`​%history​​`
    • 七、高级功能示例
      • 2. ​​`%%script`
      • 3. ​​`%%latex`

IPython 魔法命令(Magic Commands)

IPython 的​​魔法命令(Magic Commands)​​是其交互式环境中的特殊指令,以 % 或 %% 开头,用于快速执行非 Python 标准功能的任务(如文件操作、性能分析、系统交互等)。它们大幅提升了代码编写和调试效率,尤其在 Jupyter Notebook 中广泛应用。
IPython 的魔法命令是其核心特色功能,分为​​行魔法​​(% 前缀)和​​单元魔法​​(%% 前缀)。以下是常用魔法命令分类详解及代码示例。

一、系统与文件操作

1. %ls

列出当前目录文件(类似Shell命令)

# 显示详细文件列表
%ls -l

2. %cd​​%pwd

切换工作目录和显示当前目录

# 切换到 ../data 目录
%cd ../data
# 显示当前目录
%pwd
# 切换回文件所在目录
%cd ../notebooks

目录切换

3. %%writefile​​

将代码单元内容写入文件

%%writefile test.py
def hello():print("Hello from magic command!")

4. %run

执行外部Python脚本

%run test.py  # 执行刚创建的 test.py
# 运行 test.py 中的 hello 函数
hello()

执行脚本

二、性能分析与计时

1. %timeit

测量代码执行时间(自动多次运行取平均)

%timeit [x**2 for x in range(1000)]
# 输出示例:259 µs ± 4.56 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

测量代码执行时间

2. %prun​​

性能分析(函数级耗时统计)

def sum_squares(n):return sum([i**2 for i in range(n)])%prun sum_squares(100000)
# 输出各函数调用耗时统计表

prun

3. ​​%%timeit

测量整个代码单元的执行时间

%%timeit
import numpy as np
arr = np.random.rand(1000)
arr.mean()

timeit

三、代码处理与交互

1. %load

加载外部代码到当前单元,如%load test.py

%load test.py

2. ​​%edit

编辑代码并执行(打开编辑器)

# 编辑后直接执行
%edit test.py
hello()

3. ​​%store

跨会话变量存储

data = [1,2,3]
# 存储变量
%store data
# 恢复变量(下次启动仍可用)
%store -r data

四、调试与诊断

  1. ​%debug

自动进入调试器(在异常后使用)

def divide(a, b):return a / b# 触发 ZeroDivisionError
# 进入 pdb 调试环境
%debug divide(1, 0)

debug

2. ​​%pdb

自动启动调试器(全局设置)

# 开启自动调试(触发异常时自动进入 pdb)
%pdb on

3. ​​%who

查看当前命名空间变量

a = 1
b = "text"
# 输出当前命名空间变量
%who
# 仅显示字符串变量: b
%who str

五、扩展与工具集成

  1. ​%matplotlib

控制 Matplotlib 绘图显示

# 内嵌显示图表(Jupyter 常用)
%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1,2,3])

plot

2. ​​%load_ext

加载 IPython 扩展

# 加载自动重载模块扩展
%load_ext autoreload
# 修改代码后自动重新加载模块
%autoreload 2

3. ​​%%html%%javascript

渲染HTML,执行JavaScript

%%html
<div style="color:red">This is HTML!</div>

HTML

%%javascript
alert("Hello from JavaScript!");

js

六、信息查询与帮助

  1. ​​%magic

查看魔法命令文档

%magic
# 显示所有可用的魔法命令

magic

2. ​​%lsmagic​​

列出所有可用魔法命令

%lsmagic
# 显示所有可用的魔法命令

3. ​​%history​​

显示命令历史

%history -n 1-3
# 显示历史命令(第1-3条)

七、高级功能示例

  1. ​​%%capture​​

捕获输出/错误流

%%capture result
import sys
print("Captured output")
sys.stderr.write("Error message")
result.stdout  
# 获取捕获的标准输出

2. ​​%%script

调用外部解释器

%%script cmd
# Windows 命令行脚本,Linux/MacOS 可用 bash,即 %%script bash
echo "Running Bash script!"
ls -l

3. ​​%%latex

渲染 LaTeX 公式

%%latex
\begin{equation}
E = mc^2
\end{equation}

latex

IPython 魔法命令大幅提升了交互式编程效率,尤其在数据分析、快速原型开发场景中,能够无缝结合 Python 代码与系统工具。

http://www.lryc.cn/news/2385503.html

相关文章:

  • 数据同步自动化——如何用Python打造高效工具?
  • 开源与闭源之争:AI时代的创新博弈与未来抉择
  • flutter dart class语法说明、示例
  • Java虚拟机 - 程序计数器和虚拟机栈
  • SpringMVC04所有注解按照使用位置划分| 按照使用层级划分(业务层、视图层、控制层)
  • 新能源汽车产业链图谱分析
  • 如何在PyCharm2025中设置conda的多个Python版本
  • 005 深度优先搜索(DFS)算法详解:图解+代码+经典例题
  • maven快速上手
  • cplex12.9 安装教程以及下载
  • 甘特图实例 dhtmlxGantt.js
  • AMD硬件笔试面试题型解析
  • 视频剪辑 VEGAS - 配置视频片段保持原长宽比
  • 力扣 54 .螺旋矩阵
  • 四、【API 开发篇 (上)】:使用 Django REST Framework 构建项目与模块 CRUD API
  • python使用pycharm和conda 设置默认使用清华镜像
  • Prometheus+Grafana实现对服务的监控
  • ARM笔记-ARM伪指令及编程基础
  • Python入门手册:Python基础语法
  • SpringBoot-SpringBoot源码解读
  • CAD如何导出PDF?PDF如何转CAD?详细教程来了
  • python-数据可视化(大数据、数据分析、可视化图像、HTML页面)
  • el-select中自定义 两组el-option,但是key不一样,并且点击需获取当前整个项的所有属性
  • 【笔记】OpenCV的学习(未完)
  • 多模态大语言模型arxiv论文略读(八十七)
  • 《棒球百科》长寿运动排名·棒球1号位
  • Maven 项目打包时添加本地 Jar 包
  • 记录将网站从http升级https
  • 如何利用 ORM 框架有效防范 SQL 注入攻击
  • spark-shuffle 类型及其对比