几个提升工做效率的Python内置小工具

在这篇文章里,咱们将会介绍4个Python解释器自身提供的小工具。这些小工具在笔者的平常工做中常常用到,减小了各类时间的浪费,然而,却很容易被你们忽略。每当有新来的同事看到我这么使用时,都忍不住感叹,原来Python还隐藏了这么好用的功能。下面就来看一下Python自带的几个小工具html

1、1秒钟启动一个下载服务器python

在实际工做中,时不时会有这样的一个需求:将文件传给其余同事。将文件传给同事自己并非一个很繁琐的工做,如今的聊天工具通常都支持文件传输。可是,若是须要传送的文件较多,那么,操做起来就会比较麻烦。此外,若是文件在远程的服务器上,你要将文件传给同事,则须要先将远程服务器的文件下载到本地,而后再经过聊天工具传给同事。再或者,你并非特别清楚要传哪几个文件给同事,因此,大家须要进行来回的交流。交流的时间成本是比较高的,会下降办事效率。此时,大家须要更加高效的方法。linux

这个时候,若是你知道Python内置了一个下载服务器就可以显著提高效率了。例如,你的同事要让你传的文件位于某一个目录下,那么,你能够进入这个目录,而后执行下面的命令启动一个下载服务器:web

python -m SimpleHTTPServer复制代码

在Python 3中,因为对系统库进行了从新整理,所以,使用方式会有不一样:json

python -m http.server复制代码

执行上面的命令就会在当前目录下启动一个文件下载服务器,默认打开8000端口。这个时候,你只须要将IP和端口告诉同事,让同事本身去操做便可,很是的方便高效。浏览器

例如,笔者在本身的服务器上的~tempbash

~
t
e
m
p
目录下启动一个下载服务器:

$ ls
 app.py depoly.sh fabfile.py
 $ python -m SimpleHTTPServer
 Serving HTTP on 0.0.0.0 port 8000 ...复制代码

使用浏览器访问Python启动的下载服务器,能够看到一个相似于FTP下载的界面。这个时候,点击文件下载便可,下降了你们的沟通成本。服务器

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

从工做原理角度来讲,执行上面的命令,只是启动了一个Python内置的web服务器。若是当前目录下存在一个名为index.html的文件,则默认会显示该文件的内容;若是当前目录下不存在这样一个文件,则默认显示当前目录下的文件列表,也就是你们看到的下载服务器。

2、字符串转换为JSON
app

JSON是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。因为JSON的诸多优势,已经普遍使用在各个系统中,所以,咱们常常会有将JSON字符串转换为JSON对象的需求。工具

例如,在笔者的工做过程当中,咱们的系统会调用底层服务的API,底层服务的API通常都是以JSON的格式返回,为了便于问题追踪,咱们会将API返回的JSON转换为字符串记录到日志文件中。当须要分析问题时,就有可能须要将日志文件中的JSON字符串扣出来进行分析,这个时候,须要将一个JSON字符串转换为JSON对象以便于阅读。

这个需求是如此的常见,以致于使用搜索引擎搜索"JSON",处于搜索结果的第一项即是"在线JSON格式化工具"。除了打开浏览器,使用在线JSON格式化工具之外,咱们也可使用命令行终端的Python解释器来解析JSON串,以下所示:

$ echo '{"job": "developer", "name": "lmx", "sex": "male"}' | python -m json.tool { "job": "developer", "name": "lmx", "sex": "male" }复制代码

使用命令行解释器解析JSON串很是的方便,并且,为了便于阅读,该工具还会自动将转换的结果进行对齐和格式化,以下所示:

$ echo '{"address": {"province": "zhejiang", "city": "hangzhou"}, "name": "lmx", "sex": "male"}' | python -m json.tool { "address": { "city": "hangzhou", "province": "zhejiang" }, "name": "lmx", "sex": "male" }复制代码

3、检查第三方库是否正确安装

安装完Python的第三方库之后,如何确认这个库已经正确安装了呢?这个问题的答案很简单,只须要尝试进行import导入,若是导入没有任何错误,则认为安装成功了。

lmx@host1:~/temp$ python
 Python 2.7.13 (default, Feb 10 2017, 20:22:22) [GCC 4.7.2] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import paramiko
 >>>复制代码

验证Python的第三方库是否安装成功,自己也是一件很简单的事情,可是,若是咱们使用脚本对大批量的服务器进行自动部署,又应该如何验证第三方库安装成功了呢?确定不能登陆每一台服务器进行验证,这个时候,咱们可使用Python解释器的−c

-
c
参数快速的执行import语句,以下所示:

lmx@host1:~/temp$ python -c "import paramiko"复制代码

使用这种验证方式,不但比交互式的验证更加高效,更重要的是,可以在脚本中实现对于远程服务器的验证操做。

4、使用Python解压zip压缩包

若是读者是一名具备关工做经验的工程师,必定遇到过要在Linux下解压zip格式压缩包的需求。Linux下通常都是用tar命令建立和读取压缩包,可是,tar命令并不支持zip格式的压缩包。为了读取zip格式的压缩包,须要使用unzip,而大部分操做系统都没有安装unzip,所以,每次须要在Linux下解压zip格式的压缩包都会比较麻烦。

除了安装unzip工具和编写Python脚本解压zip格式的压缩包之外,也可使用zipfile模块提供了命令行接口。读者之后能够在Linux下,使用Python命令建立和解压zip格式的压缩包。zipfile模块提供的命令行接口包含如下几个选项:

8481c8f592b7f349aa84a1de5c171db681516edf-l <zipfile> 显示zip格式压缩包中的文件列表
8481c8f592b7f349aa84a1de5c171db681516edf-c 建立zip格式压缩包
8481c8f592b7f349aa84a1de5c171db681516edf-e 提取zip格式压缩包
8481c8f592b7f349aa84a1de5c171db681516edf-t 验证文件是一个有效的zip格式压缩包

下面的命令使用Python的zipfile模块提供的命令行接口,建立、查看和提取zip格式压缩包:

python -m zipfile -c monty.zip spam.txt eggs.txt
python -m zipfile -e monty.zip target-dir/
python -m zipfile -l monty.zip复制代码

总结:这篇文章介绍了4个Python内置的小工具,但愿对你们有所帮助、可以提升你们的工做效率。

文章来自阿里云开发者社区

原文连接:developer.aliyun.com/article/544…

更多Python相关内容:https://c.tb.cn/I3.CTnG

相关文章
相关标签/搜索