十大魔术命令:Python中工作效率飙升之策

开发 后端
魔术命令是常规python代码的增强,通常以“%”字符为前缀。下面是一些魔术命令及其实现,都在JupyterNotebook中执行。

本文转载自公众号“读芯术”(ID:AI_Discovery)

Python之所以能成为最通用的编程语言,与其集成新功能时的灵活性分不开。这就不得不提到魔术命令——添加到pythonshell的重要特性之一。

python中的魔术命令到底是什么?

[[324645]]

魔术命令是常规python代码的增强,通常以“%”字符为前缀。这些命令由IPython内核提供,基本上是为了解决常见问题而添加的,同时也为代码提供了一些快捷方式。

魔术命令有两种类型:%前缀和%%前缀。% 前缀表示命令在一行代码上操作,而%% 前缀允许命令在整个计算单元上操作。

下面是一些魔术命令及其实现,都在JupyterNotebook中执行。

运行外部文件

尝试在JupyterNotebook中运行一些代码片段时,希望运行位于某个目录中的外部代码文件。%运行允许从Jupyter Notebook运行任何外部python文件。

上面的文件myCode.py包含一个输出上述语句的简单脚本。

如果指定包含%run命令路径的文件名,它将执行该文件。

注:%运行也允许执行外部Jupyter Notebook。

代码执行时间

有没有想过运行计算单元需要多长时间?Time魔术命令允许跟踪计算单元的总执行情况。由于将在此处处理整个计算单元,因此使用%%作为time关键字之前的前缀。

上面的计算单元包括一个带有随机计算的for循环。%%time有助于获得运行for循环所需的时间。

将内容复制到外部文件

大多数时候,有必要将内容直接从JupyterNotebook中添加到python脚本或文本文件中。可以直接通过在代码之前添加writefile命令来导出单元内容,而不是复制所有内容并创建一个新文件。

注意,命令前面的double %表示将导出单元的全部内容。

因为已经用一些内容创建了这个文件,所以它显示了“OverwritemyCode.py”。指定它将用上面图像中显示的内容覆盖原始内容。

列出所有变量

这个魔术命令显示了整个notebook中使用的所有变量。以下是3个变量——2个字符串和1个整数。如果运行%who,它将列出定义的所有3个变量。

  1. a = "hello" 
  2. b = "Good Morning" 
  3. c = 1 

上面的代码显示了所有的变量,而与它们的数据类型无关。

为了显示特定的数据类型变量,需要在魔术命令之后传递数据类型。上面的代码将所有字符串数据类型变量显示为其输出。

在notebook之间共享变量

这个魔术命令允许在不同的JupyterNotebook之间共享任何变量。需要使用魔术命令传递原始变量。要获取该变量,需要传递带有“-r”参数的相同命令。

这是第一个notebook的样子:

获取这些数据所需的代码写在另一个notebook里。

这可能是在不同的notebook之间共享任何数据类型的数据的最简单的方法。

显示外部文件的内容

通常需要将外部文件中的几行代码复制到代码中。%pycat允许在任何目录中显示任何文件的内容,而不是通过冗长的过程来获取文件并将其打开以进行复制。

 

它将外部文件的所有内容显示为其输出。就其应用而言,可以看作是%writefile的反向。

执行html脚本

%% html允许在单元中编写html代码。现在,单元将充当一个html编辑器,输出单元的html。

下面的代码包含一个用html创建的简单表。可以注意到html输出显示了预期的表。

  1. %%html 
  2. <html> 
  3. <body> 
  4. <table> 
  5.         <tr> 
  6.             <th>Name</th> 
  7.             <th>Country</th> 
  8.             <th>Age</th> 
  9.         </tr> 
  10.         <tr> 
  11.             <td>Sid</td> 
  12.             <td>India</td> 
  13.             <td>22</td> 
  14.         </tr> 
  15.         <tr> 
  16.             <td>Dave</td> 
  17.             <td>UK</td> 
  18.             <td>28</td> 
  19.         </tr> 
  20. </table> 
  21. </body> 
  22. </html> 

提示:可以使用类似于HTML魔术命令的%%jsmagic命令在单元中运行Javascript代码。

显示Matplotlib图

%matplotlibinline魔术命令是最流行的命令。这个命令允许Jupyternotebook在notebook中显示matplotlib图形。这个命令激活matplotlib对Jupyter Notebook的交互式支持。

  1. import random 
  2. import matplotlib.pyplot as plt 
  3. %matplotlib inline 

已经导入了一些需要解释命令功能的库。

现在将创建两个随机列表来绘制图形:

  1. a = [] 
  2. b = [] 
  3. for i in range(10): 
  4.     a.append(random.randint(0,10)) 
  5.     b.append(random.randint(0,10)) 

现在将绘制数据的散点图。

%matplotlibinlin魔术命令允许在Jupyter Notebook中可视化图形。

设置环境变量

这个魔术命令可以做三件事——列出所有的环境变量,获取一个特定环境变量的值,并为一个变量设置一个值。

不带参数的%env将列出所有环境变量。

带有单个参数的%env将返回指定参数的值。

%env变量值:变量 将设置指定变量名的值。

对象的详细信息

%pinfo提供了与它一起传递的对象的详细信息。它与对象的功能相似。

在下面的代码片段中,传递了一个简单的字符串 a ,用%pinfo来获取它的详细信息。

  1. a = "The World Makes Sense!" 
  2. %pinfo a 

在上面的输出中,%pinfo提供了关于字符串对象的所有信息。

可以使用 %lsmagic 命令找到所有魔术命令列表。

这就是提高工作效率,节省时间的十大魔术命令,希望能够帮助到你。

 

责任编辑:赵宁宁 来源: 读芯术
相关推荐

2017-06-15 16:44:09

Node.js框架Web 应用

2023-11-29 07:04:19

Git工作效率

2016-10-18 08:45:26

2024-04-09 14:06:06

Git实用命令版本

2018-08-08 09:00:00

UNIXLinux命令

2023-10-13 12:56:23

工作效率VS Code技巧

2009-03-02 09:14:00

2010-03-05 13:00:39

Ubuntu命令

2021-01-12 15:17:40

命令Linux操作系统

2023-05-16 06:50:50

prompt邮件语法

2022-04-29 08:15:40

Python技巧Max

2022-09-20 15:43:58

Python工具包编程

2020-07-10 06:10:14

Python开发代码

2024-04-15 00:10:00

Redis数据库

2024-02-28 07:53:30

Redis数据存储数据库

2020-03-24 14:35:24

开源工具Joplin

2021-09-30 16:25:20

物联网人工智能IoT

2023-08-01 08:01:27

工具安全漏洞

2021-12-10 08:39:50

SQLPLUS Oracle 数据库

2016-12-02 10:05:49

Python彩蛋
点赞
收藏

51CTO技术栈公众号