惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
L
LINUX DO - 最新话题
Help Net Security
Help Net Security
N
News | PayPal Newsroom
www.infosecurity-magazine.com
www.infosecurity-magazine.com
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
The Last Watchdog
The Last Watchdog
S
Security @ Cisco Blogs
W
WeLiveSecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
Webroot Blog
Webroot Blog
T
Troy Hunt's Blog
V
Vulnerabilities – Threatpost
Google Online Security Blog
Google Online Security Blog
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
Security Archives - TechRepublic
Security Archives - TechRepublic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tor Project blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
D
Darknet – Hacking Tools, Hacker News & Cyber Security
PCI Perspectives
PCI Perspectives
Google DeepMind News
Google DeepMind News
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
S
SegmentFault 最新的问题
J
Java Code Geeks
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 【当耐特】
博客园_首页
H
Hacker News: Front Page
T
Threatpost
Jina AI
Jina AI
博客园 - Franky
月光博客
月光博客
L
LINUX DO - 热门话题
The Cloudflare Blog
H
Heimdal Security Blog
博客园 - 司徒正美
酷 壳 – CoolShell
酷 壳 – CoolShell
Cloudbric
Cloudbric
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
S
Secure Thoughts
T
Tenable Blog
I
Intezer
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 Screenly--用树莓派让任何屏幕变为可编程的数字标牌 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事
ipython使用笔记
2014-09-03 · via 夜行人

“给我一个强大而又灵活的文本编辑器(vim),一个交互式shell(IPython)以及一个语言(Python),我就能撬动整个世界。”

将IPython用熟了,可以轻松在试验、编码、测试间 “无缝折腾”。

“?” 和 “??” 是 IPython 中最常用的命令。

##和shell交互

  • 在shell中使用python变量,加上$
    • folder = ‘data’ , mkdir $folder
  • !command ,执行shell命令
1
2
3
4
:::text
path = "/var/www"
!echo $path
> /var/www

##目录/书签

  • %pwd: 显示当前工作目录。
  • %cd: 切换工作目录。
  • %bookmark: 工作目录书签。 (永久?) cd 和 bookmark 配合起来用,非常方便。
1
2
3
4
5
6
:::text
%bookmark test #为当前目录定义书签
%bookmark www /var/www #为其他目录定义书签
%bookmark -l # 显示书签列表
%bookmark -d text #删除书签
cd -b www #使用书签跳转,可省略 -b

书签跟别名的区别在于,它们会被自动持久化(写到.ipython里?)

##edit edit xx 进入文本 退出后执行文本中代码 默认使用vim,这样就可以跟外部文件沟通啦

1
2
3
:::text
edit hello.py
run hello

###给ipython edit指定编辑器 eg:(我的mac下)
export EDITOR="/usr/local/bin/vim”

###使编辑生效 reload(hello)

##历史

  • %history: 显示历史。
  • %hist: %history 别名。
  • %dhist: 显示工作目录历史。
  • %clear: 清除历史数据。
  • %save: 保存输入命令到文件。

可以将多个范围的输入数据保存到文件中。通常用于将交互环境中写的测试代码保存成源码文件。

%save -r test.txt 33-34 36
保存33-34(闭区间)以及36行到当前目录下test.txt文件里
参数 -a 添加到结尾

###自动设置ipython环境

  • 写好ipython_context.py
  • run ipython_context.py ,相关语句被导入执行,在上下文中
  • dir()查看上下文变量

##执行

  • %bg: 使用独立线程在后台执行。
  • %rep: 获取上一次命令的输出,或提取某个历史命令。
  • %run: 用来执行一个脚本,并将相关对象导入交互环境上下文。使用起来类似于熟悉的python test.py
    • run命令还可以附加选项,常用的有-t选项,这个会在脚本执行完后,打印出执行的cpu timings。如果指定了-t选项,后面可以跟一个-Nx,x代表一个数字。表示重复执行x次。
    • 还有一个-p选项,这个选项会开启python profiler,从而打印出详细的执行时间、函数调用等等信息供优化参考。
  • %runlog: 执行记录文件中命令。这对于 “恢复现场” 是非常有帮助地。

##记录

  • %logstart: 启动记录器。
  • %logon: 开始记录。
  • %logoff: 暂停记录。
  • %logstate: 查看记录状态。
  • %logstop: 关闭记录器。

首先需要用 %logstart 启动记录器,中间可以随时使用 %logon/%logoff 启动或暂停,末了别忘了关闭记录器,确保记录信息写到磁盘文件中。
%logstart 启动后会连同该命令之前的历史记录一起保存,因此要想有个干净起点的话,最好调用 %clear 清理现场

##显示

  • %p: Python print 函数的缩写。
  • %pfile: 查看对象所在源码文件。
  • %pycat: 查看源代码文件。

##搜索

  • %psearch: 在当前上下文的命名空间中进行模糊搜索。
  • %psearch -i t*.S* 其中 参数 -i 忽略大小写
  • 输入 CTRL + R 搜索历史命令

##测试

  • %prun: 使用 profile 获取代码执行的性能统计。
  • %time: 获取代码执行时间。
  • %timeit: 通过多次循环,获得最佳的执行时间评测。 这个命令用来测试一条命令执行的时间,一般而且,会重复100次运行这个命令,然后取出最好的3个结果取平均值。
    • %timeit [x*x for x in range(100000)]

##调试

  • %debug: 激活交互调试模式。
  • %pdb: 激活 pdb 调试模式,在引发异常时自动切入 pdb 调试命令行。

熟悉 pdb 是必须的,别老想着用 print,assert 也比那个强些。

##宏 macro 宏允许用户为一段代码定义一个名字

##配置

  • %autoindent: 自动缩进开关。
  • %automagic: 打开时可省略 %magic 前的百分号。
  • %colors: 彩色方案。

第一次运行ipython时会自动生成配置目录 $HOME/.ipython

##notebook ipython notebook。一个基于web的ipython shell!

notebook使用起来和ipython差不多,不过修改起来方便得多,并且可以建多个notebook,所以使用起来各种方便

#其他

  • %reset: 重置 IPython,清理相关环境对象,但历史信息被保留。

#参考资料

文章作者 种瓜

上次更新 2014-09-03