让开发人员的生活更轻松的十大Python工具

让开发人员的生活更轻松的十大Python工具

文章图片
在这个博客中: 学习10个Python工具,这是每个开发人员都必须拥有的!下载并安装“轻松生活的十大工具”构建,其中包含Python的一个版本和本文中列出的所有工具,这样你就可以自己测试它们。
相关文章: 10个常用的Python包用法示例介绍
作为一名开发人员,有时感觉我的sprint任务列表是无限的。问题的部分原因在于,很多任务都是反复出现的。这就是Python工具的用处所在。Python是一种伟大的通用语言,阅读起来很容易,但仍然非常强大。当涉及到处理这些重复的任务时,Python工具、库和受支持的ide如此之多,你一定可以找到一个包来帮助解决你的问题。如果你自己找不到,Python有很棒的社区支持。
这篇文章介绍了一些我经常使用的Python工具,它们可以帮助我解决日常需要完成的关键任务,让我的生活变得更轻松。就让我们一探究竟吧。
#1 使用Flask开发简单的Web框架需要设置web服务器吗?你有两秒钟时间吗?因为这是用Python启动一个简单的web服务器所需的时间:
python -m http.server 8000

就是这样,你有一个可以从浏览器连接到的工作服务器。但是对于一个基本的web应用程序来说,这可能太简单了。进入Flask。
Flask是一个用Python构建的微web框架。它是“微”的,因为它没有任何数据库抽象层、表单验证或邮件支持。幸运的是,它有大量的扩展,你可以插入和使用,如果你想要做的只是提供一个简单的API,那么它是完美的。
要使用Flask创建一个API服务器,使用下面的脚本:
from flask import Flask from flask import jsonifyapp = Flask(__name__)@app.route('/') def root(): return jsonify( app_name="Top 10 Python Tools", app_user="ActiveState" )

执行服务器:
FLASK_APP=flask.py flask run

最后,当你在浏览器中访问URL时,你应该看到以下JSON:
{"app_name" : "Top 10 Python Tools", "app_user" : "ActiveState"}

#2 使用Scrapy抓取网页Scrapy是一个强大的工具,可以让你“刮”或更精确地从网站上提取信息。当需要从多个网站或网页上提取大量信息时,手动处理是没有效率的。相反,开发人员使用“蜘蛛”或“爬行器”来自动抓取网页上的信息。
Scrapy提供了使用HTML标记或CSS类提取信息的易于使用的方法和包。你可以启动Scrapy Shell,这是一种交互式模式,让你可以使用不同的方法,通过发出以下命令:
scrapy shell

作为一个简单的练习,让我们尝试提取谷歌主页上搜索按钮的值。为此,我们需要找到按钮使用的类。一个简单的“Inspect Element”显示这个类是“gb1”。
在交互式Scrapy Shell中,执行以下操作:
response = fetch("https://google.com") response.css(".gb1::text").extract_first()==> "Search"

就是这么简单!
#3 Requests的API调用Requests是一个强大的HTTP库。有了它,你可以自动化任何与HTTP请求相关的事情,包括API调用的自动化,这样你就不再需要使用rest客户端手动进行调用了。它提供了一些有用的特性,比如授权处理、JSON/XML解析和会话处理。
让我们来看一个快速访问Github API的例子,它位于授权墙后面:
import requests requests.get('https://api.github.com/user')==> < Response [401]>

我们收到401“未授权错误”消息,因为我们试图访问API而没有传递所需的授权凭证。让我们再试一次,但这一次我们将提交一个有效的用户名和密码。
import requests requests.get('https://api.github.com/user', auth=('user', 'pass'))==> < Response [200]>

这次我们得到一个200的“Ok/Success”消息。Requests包提供的功能既广泛又深入。有关其功能的更多信息,请参阅Requests文档。
#4 Click命令行打包Click是一个Python包,可以用来创建漂亮的命令行接口。
【让开发人员的生活更轻松的十大Python工具】作为开发人员,我们编写了许多使我们的生活更容易的脚本,例如获取外部IP地址,或使服务器ping检查它是否活着,或只是查找时间。当然,要运行任何脚本,你必须导航到该目录,然后执行它。想传递参数吗?忘记它!在解析所有用户选项时,你将放弃。
使用Click,你可以打包任何向命令行公开功能的Python脚本。打包之后,你就可以直接从终端访问脚本了。
让我们来看一个例子:
import click@click.command() @click.option('--count', default=1, help='Number of greetings.') @click.option('--name', prompt='Your name', help='The person to greet.') def hello(count, name): """Simple program that greets NAME for a total of COUNT times.""" for x in range(count): click.echo('Hello %s!' % name)if __name__ == '__main__': hello()

方法选项向命令公开其参数名。这里暴露了两个参数:count和name。
最后调用我们的脚本:
python hello.py --count=3Your name: John Hello John! Hello John! Hello John!

#5 使用Selenium进行自动化测试Selenium是一个编写自动化测试用例的测试框架。尽管Python包是用Java编写的,但它提供了对几乎所有Selenium函数的类似api的访问。
Selenium通常用于自动测试应用程序的UI,但是你也可以使用它在你的机器上自动执行任务,如打开浏览器、拖放文件等等。
让我们看一个快速的例子,展示如何打开浏览器并访问谷歌的主页:
from selenium import webdriver import time browser = webdriver.Chrome(executable_path ="C:\Program Files (x86)\Google\Chrome\chromedriver.exe") website_URL ="https://www.google.co.in/" brower.get(website_URL) refreshrate = int(15) # This would keep running until you stop the compiler. while True: time.sleep(refreshrate) browser.refresh()

现在这个脚本每15秒在浏览器中刷新谷歌主页。
#6 关于熊猫的数据分析Pandas是一个简单而强大的数据分析工具。你可以使用它读取大量数据,清理数据,并对其执行统计分析。你可以快速地为数据生成摘要,甚至将其拆分。
分析完数据后,还可以使用外部库(如Matplotlib)可视化数据。
关于Pandas最棒的一点是,它是建立在NumPy之上的,NumPy是另一个神奇的数据分析工具,用于对数据执行数值方法。这意味着大多数NumPy方法都是在Pandas中已经可用的函数。
更多信息,包括许多如何与熊猫一起工作的例子,请参阅我之前关于如何使用Pandas清理机器学习数据集的帖子。
#7 使用Faker生成假数据这无疑是我工具包中最有用的工具!每当我需要填充占位符文本或添加虚拟数据到网站,我就使用Faker。
有了它,你可以生成假名字、地址、描述等等!例如,下面的脚本创建一个联系人条目,包括姓名、地址和一些描述文本:
from faker import Faker fake = Faker()fake.name() # 'Lucy Cechtelar'fake.address() # '426 Jordy Lodge #Cartwrightshire, SC 88120-6700'fake.text() # 'Sint velit eveniet. Rerum atque repellat voluptatem quia rerum. Numquam excepturi #beatae sint laudantium consequatur. Magni occaecati itaque sint et sit tempore. Nesciunt

#8 用Pillow处理图像很多时候,我需要以某种方式修改图像,使它们更适合于特定的目的,例如模糊细节,组合一个或多个图像,或创建缩略图。作为一名开发人员,我的首选工具不是像Photoshop那样的GUI应用程序,而是一个名为“Pillow”的强大的Python图像处理工具。
我经常把自制的Pillow脚本和Click结合起来,然后直接从命令行访问它们。对于加速重复的图像处理任务非常宝贵。
让我们看一个快速模糊图像的例子:
from PIL import Image, ImageFiltertry: original = Image.open("Lenna.png")# Blur the image blurred = original.filter(ImageFilter.BLUR)# Display both images original.show() blurred.show()blurred.save("blurred.png")except: print "Unable to load image"

简单明了。
#9 使用Pendulum进行日期和时间解析使用日期和时间格式从来都不是一件有趣的事情。我绝对不喜欢在时区和模糊的时间工作。虽然内置的Python datetime模块做了相当不错的工作,但Pendulum是一个强大的工具!它有一个更直观的界面,允许快速处理。它支持时区转换、日期时间操作和格式化。
让我们看一个快速的例子,它允许你获取三个不同时区的时间,然后操纵UTC:
from datetime import datetime import pendulumutc = pendulum.timezone('UTC') pst = pendulum.timezone('America/Los_Angeles') ist = pendulum.timezone('Asia/Calcutta')print(type(utc)) print('Current Date Time in UTC =', datetime.now(utc)) print('Current Date Time in PST =', datetime.now(pst)) print('Current Date Time in IST =', datetime.now(ist)) print(type(datetime.now(ist)))===> < class 'pendulum.tz.timezone.FixedTimezone'> Current Date Time in UTC = 2020-02-29 09:16:45.031461+00:00 Current Date Time in PST = 2020-02-29 02:16:45.031501-07:00 Current Date Time in IST = 2020-02-29 14:46:45.031555+05:30 < class 'datetime.datetime'>utc_time.add(years=1) utc_time.subtract(months=2) print('Updated UTC Time', utc_time)==> Updated UTC Time 2020-04-29T09:16:45.031608+00:00

#10 使用cookecutter创建代码模板cookecutter是一个美化的小抄!它是一个命令行工具,可以从“cookiecutters”(项目模板)创建项目。
使用它,你可以创建项目模板并将其分发给你的团队(或者将其开源)。现在,所有的团队成员都可以使用你的项目作为他们自己的基本版本,并且只需要根据他们的需要进行修改。
如果你维护了一个Python项目,或者对将项目发布到PyPI感兴趣,那么最常用的cookiecutter之一就是audreyr/cookie-ppackage。有了它,你就得到了一个包含测试、发行版和文档的“框架”Python包,然后只需根据你自己的包对其进行调整,以完成你的项目,甚至自动将其发布到PyPI。
这些Python工具应该在每个开发人员的工具箱中有句古老的格言说:“如果你必须不止一次地完成一项任务,那就把它自动化”,这在今天仍然适用。Pythonistas将这句话铭记于心,并在Python包索引(PyPI)中提供了大量的包,你可以使用这些包来帮助自动化所有那些耗费时间的手动任务,并剥夺作为开发人员的乐趣。

    推荐阅读