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

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 代码与系统工具。

相关文章:

  • 安全语音通信系统python
  • AGI大模型(33):LangChain之Memory
  • python炸鱼船
  • 【成品论文】2025年电工杯数学建模竞赛B题50页保奖成品论文+matlab/python代码+数据集等(后续会更新)
  • 第十七次CCF-CSP算法(含C++源码)
  • Linux10正式版发布,拥抱AI了!
  • Python性能优化利器:__slots__的深度解析与避坑指南
  • 分布式锁总结
  • MSP430G2553 USCI模块串口通信
  • 【疑难杂症】Vue前端下载文件无法打开 已解决
  • S32K开发环境搭建详细教程(一、S32K IDE安装注册)
  • Spring 框架的JDBC 模板技术
  • 负载均衡笔记
  • python word 读取section.page_height参数错误
  • HarmonyOS:相机选择器
  • Halcon 单目相机标定测量
  • [python]opencv从源码编译python版本发现不生成cv2.pyd
  • 游戏引擎学习第309天:用于重叠检测的网格划分
  • 考研408《计算机组成原理》复习笔记,第二章(3)数值数据的运算和存储(定点数计算)
  • 实战教程:基于Vue.js与Django REST Framework的任务管理SPA开发全流程
  • php wap网站实现滑动式数据分页/数字营销服务商seo
  • 做电影网站用什么软件叫什么/百度网站首页入口
  • 多语言网站难做么/重庆网站
  • 有企业信息的网站/网络营销推广策略有哪些
  • 电子商务网站建设技巧/凡科建站下载
  • 建网站找哪家公司/搜狗推广管家