两个python文件变量共享_Python十大魔术命令可助你提高生产力

站长之家注:Python不仅是最如今最通用的编程语言,而且在集成新功能时也是最灵活的,比如魔术命令(Magic commands)就是python shell当中重要的功能之一。以下我们来看下10个简单的魔术命令是如何帮助工程师提高生产力。

5c5f7d726297afa6a06a477e9044d47f.png

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

魔术命令是对常规python代码的增强,这些命令由IPython内核提供。同时这些魔术命令通常以“%”字符作为前缀。

这些命令基本上是为解决我们面临的常见问题而添加的,并且也是为程序员的代码提供了一些快捷方式。目前有2种魔术命令可用-%前缀和%%前缀。

%前缀表示该命令在一行代码上运行,而%%前缀允许该命令在整个单元格上运行

以下是jupyter notebook中执行的魔术命令及其实现的列表

运行外部文件

当我们尝试在jupyter notebook中运行一些代码段时,我们希望运行位于某个目录中的外部代码文件。

%run允许你从jupyter Notebook运行任何外部python文件

fd145579862a9ccfbc09a9ba060259b5.png

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

f773efe268e027cdddaf28125cb58c88.png

如果我们指定文件名(包括%run命令的路径),它将执行该文件。

注意:%run还允许执行外部jupyter Notebook。

代码执行时间

你有没有考虑过你的代码需要多少时间才能运行?使用时间魔术命令可以追踪单元的总体执行情况。由于我们将在此处处理整个单元格,因此我们将%%作为时间关键字之前的前缀。

6d5e0076d4910b30495c45c192ec1a49.png

上面的单元格包含一个带随机计算的for循环。

%% time有助于获取运行for循环所需的执行时间。

将内容复制到外部文件

大多数的时候,你会觉得需要直接从jupyter notebook上将内容添加到python脚本或文本文件中。你无需复制所有内容并创建新文件,而可以通过在代码之前添加writefile命令直接导出单元格内容。

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

d39a93fc492f9c976857b16d33c45348.png

由于我已经创建了包含某些内容的文件,因此它将显示“Overwrite myCode.py”,指定它将用上图所示的内容覆盖我的原始内容。

显示外部文件的内容

通常你会将需要的几行代码从外部文件复制到你的代码中

76bcfa52069930f3663b5997470ad27f.png

%pycat允许你显示任何目录中任何文件的内容,且无需花费很长时间来获取文件并打开文件进行复制。

它可以将外部文件的所有内容作为其输出,从实际应用来说,可以将它视为%writefile的反向逻辑。

列出所有变量

这个魔术命令显示整个jupyter notebook中使用的所有变量。

以下是3个变量——2个字符串和1个整数。 如果我们运行%who,它将列出我们定义的所有3个变量。

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

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

在笔记本之间共享变量

这个魔术命令使你可以在不同的jupyter notebooks之间共享任何变量。你需要使用魔术命令传递原始变量。

为了检索变量,你需要传递带有'-r'参数的相同命令。

这是第一个笔记本的样子

fe2207c1ab2e9bb63e67fa3b3b110808.png

然后在另一个笔记本中写检索此数据所需的代码

a36035c66c9e7e829ec247b5ccaced61.png

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

执行HTML脚本

%% html允许我们在单元格中编写html代码, 即该单元格将用作本单元格的html输出的编辑器。

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

95fb8b398bc66b2fee13d01a4493ba07.png 01a08c9b24e4e49110eadc72ae2bcff3.png

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

显示Matplotlib视图

%matplotlib内链魔术命令是最流行的命令。此命令允许Jupyter notebook在笔记本中显示matplotlib视图。此命令激活对jupyter notebook的matplotlib交互式支持。

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

现在,我们将创建两个随机列表制作成图标

现在,我们将绘制数据的散点图

dee030abe2d47218813f360f19476b07.png

%matplotlib内链魔术命令使你可以可视化jupyter notebook本中的图形。

设置环境变量

这一魔术命令可以帮助你达成3件事情:

1、列出所有环境变量

2、获取特定环境变量的值,

3、为变量赋值

f00f71a8d96ff317452ef51bec5712a0.png

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

e53d660ff1de34db41d58adf142bdf68.png

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

“%env变量值”将设置指定变量名称的值。

对象详细信息

%pinfo提供了有关随其一起传递的对象的详细信息。

在以下代码段中,我传递了一个简单的字符串“a”以及%pinfo以获取有关它的详细信息。

a8c68eeb86116c1dcb885d0bbfe61cd5.png

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

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

这些是我的十大魔术命令,希望能帮助你提高生产力并节省时间。

注:本文编译自medium,作者Siddhesh Jadhav,原文标题为Top 10 Magic Commands in Python to Boost your Productivity

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值