网易首页 > 网易号 > 正文 申请入驻

程序猿最需要的10个Python工具

0
分享至

本文转载自Pycoder's Weekly 本周的推送之一:Top 10 Python Tools to Make a Developer's Life Easier. 感兴趣的同学可以自行搜索原文,链接在这里:
https://www.activestate.com/blog/top-10-python-tools-to-make-your-life-easier/

这里只是搬运工,如果有翻译的不合适的地方欢迎指正~

我作为一个开发者,有时感觉需求总是做不完。原因之一是许多相同的任务总是不断出现,这也是我们为什么需要Python工具。Python是一种很棒的通用语言,它在具有强大功能的同时,还易于阅读(几乎像读英语)。当遇到这些重复的任务时,因为Python拥有很多库和兼容的IDE,所以你一定会找到能解决问题的包。如果你自己找不到合适的包,Python还提供出色的社区支持。

这篇文章介绍了一些我经常使用的Python工具。让我们一起来看一下吧~

#1 使用Flask搭建Web框架

我们只需要两秒钟就可以用Python设置好一个网络服务器。

python -m http.server 8000

就是这么简单。你可以从浏览器连接到这个服务器。但这个版本还是过于简单了,所以我们需要Flask。

Flask是使用Python构建的微型Web框架。之所以称为“微型”,是因为它没有任何数据库抽象层,表单验证或邮件支持。它的好处是具有大量扩展插件,如果你只想提供一个简单的API,它是最好的选择。

要使用Flask创建API服务器,请使用以下脚本:

from flask import Flask
from flask import jsonify
app = Flask(__name__)
@app.route('/')
def root():
return jsonify(
app_name="Top 10 Python Tools",
app_user="ActiveState"
)

要运行服务器:

LASK_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

做一个小练习。我们尝试提取Google主页上搜索按钮的值。在这之前需要找到按钮使用的类。通过简单的“元素检查”我们发现该类为“gb1”。

在Scrapy Shell中,执行以下操作:

response = fetch("https://google.com")
response.css(".gb1::text").extract_first()
==> "Search"

(也不知道百度行不行)

#3 用Requests调用API

Requests是一个非常强大的HTTP库。有了它,你可以利用HTTP请求来自动执行几乎所有操作,包括自动执行API调用。它有很多功能,例如授权处理,JSON / XML解析和会话处理。

我们看一个访问Github API的例子,在这个例子里面,我们在授权墙后面:

import requests
requests.get('https://api.github.com/user')
==>

401]>

我们收到401“未经授权的错误”消息,因为我们访问API时没有传递授权证书。再试一次,但是这次我们提交有效的用户名和密码。

import requests
requests.get('https://api.github.com/user', auth=('user', 'pass'))
==>

200]>

这次我们收到200“确定/成功”消息。

#4 使用Click进行命令行打包

Click是一个python包,用于创建好看的命令行界面。

作为开发人员,我们会编写许多脚本,例如获取外部IP地址,或通过服务器ping来检查其是否仍在运行,或者只是查找时间。当然,要运行任何脚本,你必须先导航到目录然后执行它。想要传参数?没戏!在解析所有用户选项时,你会弃疗的。

使用Click,你可以打包任何向命令行公开功能的Python脚本。打包后,你可以直接从terminal访问脚本。

让我们看一个例子:

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()

Click里面的option会将其参数名称公开。上面的例子有两个参数:count和name。

最后调用我们的脚本:

python hello.py --count=3
Your name: John
Hello John!
Hello John!
Hello John!

#5 使用Selenium进行自动化测试

Selenium是一个编写自动测试用例的测试框架。尽管它是用Java编写的,但Python包提供了对几乎所有Selenium函数的类API访问。

Selenium通常用于自动测试应用程序的UI,但是你也可以使用它来自动化如打开浏览器,拖放文件等操作。

让我们看一个简单的示例,该示例显示如何打开浏览器并访问Google主页:

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秒刷新一次浏览器中的google主页。

#6 使用Pandas进行数据分析

Pandas是一个简单而强大的数据分析工具。你可以用它读取大量数据,对数据进行清理并对其进行统计分析。也可以快速总结或拆分数据。

分析完数据后,你还可以使用Matplotlib等外部库将其可视化。

Pandas最好的地方是它建立在NumPy的基础上,而NumPy有很多数值分析/数学相关的函数。这意味着大多数NumPy中的函数在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应用程序,而是一个功能强大的Python图像处理工具,称为Pillow。

我经常将自制的Pillow脚本与Click结合在一起,然后直接从命令行访问它们。 这可以快速进行图像批量处理。

让我们看一个使图像模糊的简单示例:

from PIL import Image, ImageFilter
try:
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内置的日期时间模块做得相当不错,但Pendulum更强大!它有更直观的界面,可以快速处理数据。它还支持时区转换,日期时间操作和格式设置。

让我们看一个简单的示例,你可以用它获取3个不同时区的时间,然后使用UTC:

from datetime import datetime
import pendulum
utc = 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)))
===>

'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

'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 使用Cookiecutter创建代码模板

Cookiecutter是个很好用的备忘单!它可以用命令行从“cookiecutter”中获取项目模板创建项目。

因此,你可以用它创建项目模板并将其分发给自己的团队(或开源)。开源之后,所有团队成员都可以将你的项目用作自己的基本版本,只需进行修改即可满足他们的需求。

如果你维护一个Python项目,或有兴趣将项目发布到PyPI,最常用的cookiecutter之一就是audreyr / cookiecutter-pypackage。你可以用它获得一个基础版 Python软件包,其中包括测试,发行版和文档,然后针对你自己的软件包进行修改即可完成你的项目。你还可以自动将其发布到PyPI。

呼,本来以为这篇文上上周就可以发出来,没想到慢慢悠悠翻译了这么久。

第一次翻译文章,感觉很神奇。英文版其实我花了大概十分钟就看完了,而且自认里面没有什么生僻词,于是起了翻译的想法。但是翻译又是另一回事,有些句子意思懂了,但是不知道如何才能翻成看起来非常顺畅的中文语句。

有些package确实我自己也没用过,所以并没有办法完全理解文中的深意,只能浅显地写出字面意思。

所以如果某些句子或词语使用不当,欢迎指出。

刚看到这篇文章时,我觉得它非常全面地介绍了很多很有用的package。里面确实提到了一些我会遇到的问题,但我从来没有想过去搜一下有没有现成的库可以用。

希望它对你也有用。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
湖人打算迎回英格拉姆,或许是为做好詹姆斯离开的准备

湖人打算迎回英格拉姆,或许是为做好詹姆斯离开的准备

阿雄侃篮球
2024-05-13 16:25:25
想你想你想我

想你想你想我

阿芒娱乐说
2024-05-13 03:08:51
华子回应穆雷,你的言论没有尊重詹姆斯,他若年轻5岁有你啥事?

华子回应穆雷,你的言论没有尊重詹姆斯,他若年轻5岁有你啥事?

老胡将体育
2024-05-13 11:17:38
无声的塌陷

无声的塌陷

路财主
2024-05-13 13:56:53
闹大了!上海一女子称三代都是税务局人,评论炸锅,官方回应来了

闹大了!上海一女子称三代都是税务局人,评论炸锅,官方回应来了

鹏飞深文
2024-05-01 14:42:24
我入伍前在玉米地无意救活一女子,六年后提干做了连长娶她做媳妇

我入伍前在玉米地无意救活一女子,六年后提干做了连长娶她做媳妇

微微的风
2024-03-25 21:14:36
百度女副总发文道歉后,前员工实名曝光其人品,私生活被扒很精彩

百度女副总发文道歉后,前员工实名曝光其人品,私生活被扒很精彩

娱乐圈的笔娱君
2024-05-11 15:23:52
痛惜!211大学系主任病逝,年仅42岁!

痛惜!211大学系主任病逝,年仅42岁!

双一流高校
2024-05-12 19:38:59
再这么搞下去,失业的人只会越来越多!政府该做些什么?

再这么搞下去,失业的人只会越来越多!政府该做些什么?

鹏飞深文
2024-04-27 13:40:46
感谢中国的慷慨相助!果断拒绝日德先进技术,2200亿大单交给我国

感谢中国的慷慨相助!果断拒绝日德先进技术,2200亿大单交给我国

文学科技圈
2024-05-13 03:32:35
呼和浩特楼市不败神话被终结了,新城区、赛罕区降至10000元

呼和浩特楼市不败神话被终结了,新城区、赛罕区降至10000元

有事问彭叔
2024-05-13 16:58:56
周淑怡果然最懂网友,发布一组泳装照片,把粉丝钓成翘嘴了

周淑怡果然最懂网友,发布一组泳装照片,把粉丝钓成翘嘴了

新游戏大妹子
2024-05-13 12:12:47
中共中央政治局:抓紧构建房地产发展新模式

中共中央政治局:抓紧构建房地产发展新模式

中国房地产报官方号
2024-05-11 10:12:46
外媒谈苹果放弃造车真实原因:高管体验ChatGPT感到震惊或威胁iPhone地位,每年240亿美元收入没了【附生成式AI行业前景】

外媒谈苹果放弃造车真实原因:高管体验ChatGPT感到震惊或威胁iPhone地位,每年240亿美元收入没了【附生成式AI行业前景】

前瞻网
2024-05-13 11:46:08
崔永熙将返回奥兰多继续进行特训 他计划参加NBA球队单独试训

崔永熙将返回奥兰多继续进行特训 他计划参加NBA球队单独试训

直播吧
2024-05-13 16:56:36
北约弹药库空了,俄军从亚洲拿到40亿美元武器:不是朝鲜不是伊朗

北约弹药库空了,俄军从亚洲拿到40亿美元武器:不是朝鲜不是伊朗

战域笔墨
2024-05-13 13:46:12
太火爆!辽宁男篮总决赛G1G2门票一分钟售罄,预约人数超40万

太火爆!辽宁男篮总决赛G1G2门票一分钟售罄,预约人数超40万

懂球帝
2024-05-13 10:23:38
广东25岁男子不工作只顾玩手机,母亲看不下去:长得帅有什么用?

广东25岁男子不工作只顾玩手机,母亲看不下去:长得帅有什么用?

夫妻谈资局
2024-05-10 17:23:11
普京启程来华前,先和印度做一个了断,中印之间,俄不再犹豫不决

普京启程来华前,先和印度做一个了断,中印之间,俄不再犹豫不决

影视解说阿相
2024-05-13 09:23:49
滕哈赫:周一我们无法面对球迷,今天则回报了他们

滕哈赫:周一我们无法面对球迷,今天则回报了他们

直播吧
2024-05-13 07:22:10
2024-05-13 17:48:49
正当的娱乐
正当的娱乐
开心就好
1146文章数 1259关注度
往期回顾 全部

科技要闻

李开复:这次大模型创业 我十年都不会变现

头条要闻

县委书记谢建军主动投案 任职地怀化已有多名官员落马

头条要闻

县委书记谢建军主动投案 任职地怀化已有多名官员落马

体育要闻

曼联的越位陷阱里,有只胖虎在溜达

娱乐要闻

湖南卫视回应韩红请战,文案堪称一绝

财经要闻

放开买房租房落户 超大特大城市绷不住了

汽车要闻

纯电增程并行 长安马自达EZ-6实车曝光

态度原创

教育
房产
健康
公开课
军事航空

教育要闻

最浪漫的数学表白方程记得让看到最后

房产要闻

最新,海口丁村城市更新又有大动作!

在中国,到底哪些人在吃“伟哥”?

公开课

父亲年龄越大孩子越不聪明?

军事要闻

普京提名原副总理别洛乌索夫担任俄国防部长

无障碍浏览 进入关怀版