在这篇文章里,咱们将会介绍4个Python解释器自身提供的小工具。这些小工具在笔者的平常工做中常常用到,减小了各类时间的浪费,然而,却很容易被你们忽略。每当有新来的同事看到我这么使用时,都忍不住感叹,原来Python还隐藏了这么好用的功能。下面就来看一下Python自带的几个小工具html
在实际工做中,时不时会有这样的一个需求:将文件传给其余同事。将文件传给同事自己并非一个很繁琐的工做,如今的聊天工具通常都支持文件传输。可是,若是须要传送的文件较多,那么,操做起来就会比较麻烦。此外,若是文件在远程的服务器上,你要将文件传给同事,则须要先将远程服务器的文件下载到本地,而后再经过聊天工具传给同事。再或者,你并非特别清楚要传哪几个文件给同事,因此,大家须要进行来回的交流。交流的时间成本是比较高的,会下降办事效率。此时,大家须要更加高效的方法。python
这个时候,若是你知道Python内置了一个下载服务器就可以显著提高效率了。例如,你的同事要让你传的文件位于某一个目录下,那么,你能够进入这个目录,而后执行下面的命令启动一个下载服务器:web
python -m SimpleHTTPServer
复制代码
在Python 3中,因为对系统库进行了从新整理,所以,使用方式会有不一样:浏览器
python -m http.server
复制代码
执行上面的命令就会在当前目录下启动一个文件下载服务器,默认打开8000端口。这个时候,你只须要将IP和端口告诉同事,让同事本身去操做便可,很是的方便高效。bash
例如,笔者在本身的服务器上的`~/temp`目录下启动一个下载服务器:服务器
使用浏览器访问Python启动的下载服务器,能够看到一个相似于FTP下载的界面。这个时候,点击文件下载便可,下降了你们的沟通成本。工具
从工做原理角度来讲,执行上面的命令,只是启动了一个Python内置的web服务器。若是当前目录下存在一个名为index.html的文件,则默认会显示该文件的内容;若是当前目录下不存在这样一个文件,则默认显示当前目录下的文件列表,也就是你们看到的下载服务器。搜索引擎
JSON是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。因为JSON的诸多优势,已经普遍使用在各个系统中,所以,咱们常常会有将JSON字符串转换为JSON对象的需求。spa
例如,在笔者的工做过程当中,咱们的系统会调用底层服务的API,底层服务的API通常都是以JSON的格式返回,为了便于问题追踪,咱们会将API返回的JSON转换为字符串记录到日志文件中。当须要分析问题时,就有可能须要将日志文件中的JSON字符串扣出来进行分析,这个时候,须要将一个JSON字符串转换为JSON对象以便于阅读。操作系统
这个需求是如此的常见,以致于使用搜索引擎搜索"JSON",处于搜索结果的第一项即是"在线JSON格式化工具"。除了打开浏览器,使用在线JSON格式化工具之外,咱们也可使用命令行终端的Python解释器来解析JSON串,以下所示:
使用命令行解释器解析JSON串很是的方便,并且,为了便于阅读,该工具还会自动将转换的结果进行对齐和格式化,以下所示:
安装完Python的第三方库之后,如何确认这个库已经正确安装了呢?这个问题的答案很简单,只须要尝试进行import导入,若是导入没有任何错误,则认为安装成功了。
验证Python的第三方库是否安装成功,自己也是一件很简单的事情,可是,若是咱们使用脚本对大批量的服务器进行自动部署,又应该如何验证第三方库安装成功了呢?确定不能登陆每一台服务器进行验证,这个时候,咱们可使用Python解释器的`-c`参数快速的执行import语句,以下所示:
lmx@host1:~/temp$ python -c "import paramiko"
复制代码
使用这种验证方式,不但比交互式的验证更加高效,更重要的是,可以在脚本中实现对于远程服务器的验证操做。
若是读者是一名具备关工做经验的工程师,必定遇到过要在Linux下解压zip格式压缩包的需求。Linux下通常都是用tar命令建立和读取压缩包,可是,tar命令并不支持zip格式的压缩包。为了读取zip格式的压缩包,须要使用unzip,而大部分操做系统都没有安装unzip,所以,每次须要在Linux下解压zip格式的压缩包都会比较麻烦。
除了安装unzip工具和编写Python脚本解压zip格式的压缩包之外,也可使用zipfile模块提供了命令行接口。读者之后能够在Linux下,使用Python命令建立和解压zip格式的压缩包。zipfile模块提供的命令行接口包含如下几个选项:
下面的命令使用Python的zipfile模块提供的命令行接口,建立、查看和提取zip格式压缩包:
总结:这篇文章介绍了4个Python内置的小工具,但愿对你们有所帮助、可以提升你们的工做效率。