几个可以提高工作效率的Python内置小工具
在这篇文章里,我们将会介绍4个Python解释器自身提供的小工具。这些小工具在笔者的日常工作中经常用到,减少了各种时间的浪费,然而,却很容易被大家忽略。每当有新来的同事看到我这么使用时,都忍不住感叹,原来Python还隐藏了这么好用的功能。下面就来看一下Python自带的几个小工具
python学习交流群:516107834
一、1秒钟启动一个下载服务器
在实际工作中,时不时会有这样的一个需求:将文件传给其他同事。将文件传给同事本身并不是一个很繁琐的工作,现在的聊天工具一般都支持文件传输。但是,如果需要传送的文件较多,那么,操作起来就会比较麻烦。此外,如果文件在远程的服务器上,你要将文件传给同事,则需要先将远程服务器的文件下载到本地,然后再通过聊天工具传给同事。再或者,你并不是特别清楚要传哪几个文件给同事,所以,你们需要进行来回的交流。交流的时间成本是比较高的,会降低办事效率。此时,你们需要更加高效的方法。
这个时候,如果你知道Python内置了一个下载服务器就能够显著提升效率了。例如,你的同事要让你传的文件位于某一个目录下,那么,你可以进入这个目录,然后执行下面的命令启动一个下载服务器:
python -m SimpleHTTPServer
在Python 3中,由于对系统库进行了重新整理,因此,使用方式会有不同:
python -m http.server
执行上面的命令就会在当前目录下启动一个文件下载服务器,默认打开8000端口。这个时候,你只需要将IP和端口告诉同事,让同事自己去操作即可,非常的方便高效。
例如,笔者在自己的服务器上的`~/temp`目录下启动一个下载服务器:
使用浏览器访问Python启动的下载服务器,可以看到一个类似于FTP下载的界面。这个时候,点击文件下载即可,降低了大家的沟通成本。
从工作原理角度来说,执行上面的命令,只是启动了一个Python内置的web服务器。如果当前目录下存在一个名为index.html的文件,则默认会显示该文件的内容;如果当前目录下不存在这样一个文件,则默认显示当前目录下的文件列表,也就是大家看到的下载服务器。
二、字符串转换为JSON
JSON是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。由于JSON的诸多优点,已经广泛使用在各个系统中,因此,我们经常会有将JSON字符串转换为JSON对象的需求。
例如,在笔者的工作过程中,我们的系统会调用底层服务的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"
使用这种验证方式,不但比交互式的验证更加高效,更重要的是,能够在脚本中实现对于远程服务器的验证操作。
四、使用Python解压zip压缩包
如果读者是一名具有关工作经验的工程师,一定遇到过要在Linux下解压zip格式压缩包的需求。Linux下一般都是用tar命令创建和读取压缩包,但是,tar命令并不支持zip格式的压缩包。为了读取zip格式的压缩包,需要使用unzip,而大部分操作系统都没有安装unzip,因此,每次需要在Linux下解压zip格式的压缩包都会比较麻烦。
除了安装unzip工具和编写Python脚本解压zip格式的压缩包以外,也可以使用zipfile模块提供了命令行接口。读者以后可以在Linux下,使用Python命令创建和解压zip格式的压缩包。zipfile模块提供的命令行接口包含以下几个选项:
- -l <zipfile> 显示zip格式压缩包中的文件列表
- -c 创建zip格式压缩包
- -e 提取zip格式压缩包
- -t 验证文件是一个有效的zip格式压缩包
下面的命令使用Python的zipfile模块提供的命令行接口,创建、查看和提取zip格式压缩包:
总结:这篇文章介绍了4个Python内置的小工具,希望对大家有所帮助、能够提高大家的工作效率。
几个可以提高工作效率的Python内置小工具的更多相关文章
- python内置小工具
python -m http.server # 启动一个下载服务器 echo '{"job": "developer", "job": &q ...
- python 内置2to3工具将python2代码转换为python3代码
python2与python3代码不兼容,如果需要python2代码在python3环境下运行,需要将代码进行转换,本文介绍使用python3内置工具2to3.py对代码进行转换 一:2to3.py在 ...
- Windows 下有什么软件能够极大地提高工作效率
Windows 下有什么软件能够极大地提高工作效率?修改 可以推荐一些好的应用或者有趣的程序,能提升工作效率或者能让人眼前一亮的.修改 举报1 条评论 分享 • 邀请回答 按票数排序按时间排序 2 ...
- 使用并行ssh提高工作效率
我们经常需要ssh到多个主机上执行相同的命令,为了提高效率,我们通常会自己写个脚本,循环遍历执行我们的命令,比如: for host in `cat hosts.txt`;do ssh usernam ...
- Android Studio in OSX 提高工作效率的快捷键
前言 本篇文章参考了<倍数提高工作效率的Android Studio>一文,快捷键基于OS X系统. OS X Yosemite 10.10.5 Android Studio 1.3.1 ...
- 倍数提高工作效率的 Android Studio 奇技
来源:JeremyHe 链接:http://zlv.me/posts/2015/07/13/14_android-studio-tips/ 这是从Philippe Breault的系列文章<An ...
- [转]倍数提高工作效率的 Android Studio 奇技
转自:http://android.jobbole.com/81687/ 倍数提高工作效率的 Android Studio 奇技 2015/10/08 · 技术分享 · 4 评论· Android S ...
- 15款提高工作效率的 Web 项目管理工具
在今天的快节奏的商业世界里,能够通过计划.组织.和管理资源池以及评估开发资源的模式来管理一个项目,是一个很艰巨的任务. 有很多现成的项目管理软件来帮助减轻项目管理的负担,并且他们几乎覆盖了所有类型的业 ...
- 程序员提高工作效率的15个技巧【Facebook】
程序员提高工作效率的15个技巧[Facebook] 作者: habadog 日期: 2015 年 02 月 13 日发表评论 (0)查看评论 程序员提高工作效率的15个技巧[Facebook] 1,D ...
随机推荐
- 如何找回QQ聊天记录、语音、图片?
多图长图预警,本教程适用于 安卓手机 认真仔细看完答案的成功几率翻倍哟! 请各位认真看答案!求您了~ 2020年/4/4日 更新 人民不会忘记,祖国不会忘记,我们不会忘记,先烈不朽. 调整答案顺序,使 ...
- C. Yet Another Walking Robot Round #617 (Div. 3)()(map + 前后相同状态的存储)
C. Yet Another Walking Robot time limit per test 1 second memory limit per test 256 megabytes input ...
- markdown中锚链接实现目录跳转以及注意事项
当文章有分类,需要快速阅读,通常会先在文首部写一个目录,点击可以跳转. 为文章写目录,特别在文章较长的时候,有助于对内容的整体把握,能提高阅读效率. 以下,将写一个基本的锚目录demo,然后特别说明需 ...
- C#与html实现WebSocket交互(制作ktv手机点歌)
------------恢复内容开始------------ C#与html实现WebSocket交互(制作ktv手机点歌) C#端代码 static void Main(string[] args) ...
- Win 10 C 盘突然爆满,怎么清理?
Win 10 C 盘突然爆满,怎么清理? 使用windows的小伙伴们都知道,C盘是安装系统的,有时候不知道为啥突然就爆满了,查看我的电脑,C盘显示红色的.是不是感觉狠揪心,想删除一些东西有不敢删除, ...
- Pytest系列(13)- 重复执行用例插件之pytest-repeat的详细使用
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 前言 平常在做功能测试的时候,经常 ...
- Mysql数据库下载
链接:https://pan.baidu.com/s/1ZwkY_Twsil7acvtCJ4ljgQ 提取码:t5ih
- github的学习使用以及将自己开发的app传上去。
主要参考的网址如下: https://www.cnblogs.com/sdcs/p/8270029.html https://www.cnblogs.com/sjhsszl/p/8708471.htm ...
- 按公式产生随机数、java中的重载、递归、有关计算机计算的问题
1.按公式产生随机数x1=(16807*x)%(Integer.MAX_VALUE)x=x1;通过这个公式进行随机数的产生,当产生的数字大于2e+32-2时,在用产生随机数的方式进行数字的输出.主要思 ...
- 自动生成四则运算题目(C语言)
Github项目地址:https://github.com/huihuigo/expgenerator 合作者:马文辉(3118005015).卢力衔(3118005013) 项目简介 1题目:实现一 ...