用Python shell简化开发

Python 编程语言已经成为 IT 中使用的最流行的语言之一。成功的一个原因是它可以用来解决各种问题。从网站开发到数据科学、机器学习到任务自动化,Python 生态系统有丰富的框架和库。本文将介绍一些有用的 Python shell 来简化我们的开发。

Python Shell

Python Shell 即原生的 Python 交互环境,可以让你以交互模式使用 Python 解释器。这在测试代码或尝试新库时非常有用。在 Ubuntu 中,你可以通过在终端会话中输入 python 来调用默认的 shell。

$ python
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hi')
hi

IPython

IPython 为 Python shell 提供了许多有用的增强功能。例如包括 tab 补全,对象内省,可以调用系统 shell 访问和命令历史检索。

安装和运行 IPython

$ pip install ipython

$ ipython --version
6.5.0

自动补全

在 ipython 环境下就可以使用 tab 补全啦,当遇到使用不熟悉的库时,此功能会派上用场。

内省

如果不熟悉某个库的某个方法,可以输入 ? 命令来查看文档。对此的更多详细信息,也可以使用 ??命令。这就叫做对象的内省。

运行 shell 命令

另一个很酷的功能是使用 ! 字符执行系统 shell 命令的能力。然后还可以在 IPython shell 中引用该命令的结果。

IPython 完整的功能列表可在官方文档中找到。

crtl+r 可以搜索历史命令:

bpython

bpython 并不能像 IPython 做那么多,但它却在一个简单的轻量级包中提供了一系列有用功能。除其他功能之外,bpython 提供:

  • 内嵌语法高亮显示
  • 在你输入时提供自动补全建议
  • 可预期的参数列表,bpython可以在调用函数时显示参数列表。
  • 能够将代码发送或保存到 pastebin 服务或文件中

安装和运行 bpython

$ pip install bpython

$ bpython --version
bpython version 0.17.1 on top of Python 3.5.2 /usr/bin/python
(C) 2008-2016 Bob Farrell, Andreas Stuehrk, Sebastian Ramacher, Thomas Ballinger, et al. See AUTHORS for detail.

在你输入的时候,bpython 为你提供了选择来自动补全你的代码。

当你调用函数或方法时,会自动显示需要的参数和文档字符串。

有关配置和功能的更多细节,请参考 bpython 官方文档。

总结

使用增强的 Python shell 是提高生产力的好方法。它为你提供增强的功能来编写快速原型或尝试新库。

(0)

相关推荐

  • python 执行shell命令并将结果保存的实例

    方法1: 将shell执行的结果保存到字符串 def run_cmd(cmd): result_str='' process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) result_f = process.stdout error_f = process.stderr errors = error_f.read() if errors: pass result_str =

  • Python下调用Linux的Shell命令的方法

    有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 1.1. os模块的exec方法族 Python的exec系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回.( 这个看了点 help(os)  --> search "exec" 的相关介绍,但是没

  • Python设置在shell脚本中自动补全功能的方法

    本篇博客将会简短的介绍,如何在ubuntu中设置python自动补全功能. 需求:由于python中的内建函数较多,我们在百纳乘时,可能记不清函数的名字,同时自动补全功能,加快了我们开发的效率. 方法以及要求:设置过程中需要看客具备一点ubuntu的基本知识,当然不懂也没有关系,跟着一步一步走,不懂得可以学习一下ubuntu的文件系统. 具体步骤 1.首先创建一个文件:~/.pythonrc 在ubuntu中创建文件的命令为: sudo gedit ~/.pythonrc #sudo表示使用管理

  • python和shell监控linux服务器的详细代码

    本文实例为大家分享了python和shell监控linux服务器的具体代码,供大家参考,具体内容如下 1. shell监控负载 监控原理:使用uptime来获取负载的信息,然后通过字符串截取的方式来获取load值来获取单个核心的负载,在将负载与阈值比较确定是否报警. loard_monitor.sh脚本: #!/bin/bash #使用uptime命令监控linux系统负载变化 #提取本服务器的IP地址信息 IP=`ifconfig eth0 | grep "inet addr" |

  • shell命令行,一键创建 python 模板文件脚本方法

    写 python 文件时,每个文件开头都必须注明版本和编码.每次我 touch 文件之后粘贴这两句话让我不胜其烦. 由于我没有安装 python 的 IDE 工具,也没有为 vim 安装相应的插件.主要是为了练习自己的编码能力,而不希望过于依赖工具,所以为了解决这个问题,我写了这个脚本. #!/bin/bash if [ -n "$1" ]; then if [ -f "$1" ]; then echo $1 '文件已经存在,不能重复创建' else echo '#

  • python和shell获取文本内容的方法

    这两天搞脚本,花费不少时间. Python和Shell都可以获取文本内容,网上许多资料介绍的都不具体.简单的使用Python和Shell写了脚本. 做一些笔记沉淀一下. 1.Python实现: #-*- encoding:UTF-8 -*- filehandler = open('f.txt','r') #以读方式打开文件,rb为二进制方式(如图片或可执行文件等) print filehandler.read() #读取整个文件 filehandler.close() #关闭文件句柄 2.She

  • 利用Python+Java调用Shell脚本时的死锁陷阱详解

    前言 最近有一项需求,要定时判断任务执行条件是否满足并触发 Spark 任务,平时编写 Spark 任务时都是封装为一个 Jar 包,然后采用 Shell 脚本形式传入所需参数执行,考虑到本次判断条件逻辑复杂,只用 Shell 脚本完成不利于开发测试,所以调研使用了 Python 和 Java 分别调用 Spark 脚本的方法. 使用版本为 Python 3.6.4 及 JDK 8 Python 主要使用 subprocess 库.Python 的 API 变动比较频繁,在 3.5 之后新增了

  • python+influxdb+shell编写区域网络状况表

    本文为大家分享了python+influxdb+shell写一个区域网络状况表,供大家参考,具体内容如下 shell脚本部分: ex:就是ping 各个目的ip10个包,然后获取丢包率和平均延迟时间,在Linux上设置为定时任务,每分钟执行一次.他会把数据写到influxdb服务器上面去,表示hk_vnloss和hk_vn01rtt,字段是loss和rtt,其他各区域的都是类似. python代码部分: 1.在Django项目的setting里面,配置influxdb数据库连接: ALLOWED

  • python SSH模块登录,远程机执行shell命令实例解析

    用python SSH模块登录,并在远程机执行shell命令 (在CentOS 7 环境试验成功, Redhat 系列应该是兼容的.) 先安装必须的模块 # yum install python-dev # yum install python-devel # pip install pycrypto # pip install paramiko # pip install ssh 这些都成功后, 编写一个Python脚本 # vim remote_run.py import ssh # 新建一

  • 使用Python生成Shell命令,批量执行程序代码解析

    本文主要研究的是Linux系统中使用Python生成Shell命令,批量执行程序的相关内容,具体如下. 近日经常遇到在Linux shell中批量执行相似命令的情况.比如执行如下命令: gifsicle --delay=100 gif/App_1_hour_*_down.gif > combine_gif/App_1_hour_down.gif gifsicle --delay=100 gif/App_1_hour_*_up.gif > combine_gif/App_1_hour_up.gi

随机推荐