它是专业生成假数据的神器,但生成的数据看起来又如此“不假”。
基本用法如下所示:
- from faker import Faker
- fake = Faker(locale="zh_CN")
-
- fake.name()
- # '谭柳'
-
- fake.address()
- # '江西省关岭县新城赵街Y座 630814'
-
- fake.text()
- '怎么作者地区.投资报告企业内容责任发展来源资料.一下自己一次全部社区.\n今天非常由于开发谢谢.其中大家组织游戏.\n只有最新控制同时计划学校.分析记者价格方式.\n成功可能感觉方式包括手机.中国重要这种比较必须中心我的.\n公司很多安全类别威望一种.部门全国文件日本帖子积分不同.\n工程这个其中销售历史可以.对于感觉全国发生国内不是.单位用户新闻成为.留言本站说明报告工作继续.'
2 Pendulum管理时间
使用日期和时间格式从来都不是一件有趣的事情。
尽管内置的datetime模块做得相当不错,但有一个更直观的Pendulum,能做到快速处理。
它支持时区转换、日期、时间操作和格式设置。
如下是一个快速示例,快速创建1个上海时区的时间:
- from datetime import datetime
- import pendulum
-
- sh = pendulum.timezone('Asia/Shanghai')
- shc = pendulum.now()
- print('Current Date Time in sh =', shc)
- # DateTime(2021, 12, 9, 16, 38, 52, 599942, tzinfo=Timezone('Asia/Shanghai'))
-
- shc.add(years=1)
- # DateTime(2022, 12, 9, 16, 38, 52, 599942, tzinfo=Timezone('Asia/Shanghai'))
3 Scrapy 做爬虫
Scrapy是一个强大的工具,可以让你从网站上快速提取信息。
当需要从多个网站或网页中提取大量信息时,手动提取是低效的。
Scrapy提供了易于使用的方法和包,可以使用HTML标记或CSS类提取信息。通过以下命令安装scrapy:
- pip install scrapy
然后直接在终端输入下面一行代码,
- scrapy fetch --nolog https://baidu.com
就能得到百度的首页html内容。
4 使用Pandas数据分析
Pandas是一个简单但功能强大的数据分析工具。使用它可以进行数据清洗,并对其进行统计分析。
分析完数据后,还可以使用外部库(如[Matplotlib])将其可视化(
https://github.com/matplotlib/matplotlib).
Pandas最棒的地方是它建在NumPy上面,NumPy是一个强大的数据分析工具,因为Pandas基于它,所以这意味着大多数NumPy方法都是Pandas中已有的函数。
5 click命令行工具
click是一个Python包,可用于创建命令行接口,相当漂亮的命令行,相当丝滑。
让我们看一个例子:
- """
- click 模块演示
- """
-
-
- @click.command()
- @click.option('--count', default=3)
- @click.option('--name', prompt='输入你的名字:')
- def hello(count, name):
- for x in range(count):
- print(f"Hello {name}!")
-
-
- if __name__ == "__main__":
- hello()
hello函数公开了两个参数:count和name。最后,在命令行,直接这样调用脚本:
- python click_hello.py --count=5
最后打印:
- 输入你的名字:: zhenguo
- Hello zhenguo!
- Hello zhenguo!
- Hello zhenguo!
- Hello zhenguo!
- Hello zhenguo!
6 微web框架Flask
需要设置web服务器吗?
你有两秒钟的时间吗?因为这就是用Python启动简单web服务器所需的时间,直接下面一行代码:
- python -m http.server 8000
但对于一个基本的web应用程序来说,这可能太简单了。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="zhenguo的小工具",
- app_user="zhenguo"
- )
使用下面一行代码启动服务:
- FLASK_APP=flask.py flask run
最后,当您在浏览器中访问URLhttp://127.0.0.1:5000/时,
应该会看到以下JSON:
- {"app_name":"zhenguo的小工具","app_user":"zhenguo"}
7 API请求Requests
Requests是一个强大的HTTP库。有了它,可以自动化任何与HTTP请求相关的操作,包括API自动化调用,这样你就不必再手动进行调用。
它附带了一些有用的特性,如授权处理、JSON/XML解析和会话处理。
如下获取明文地址:北京市海淀区清华东路35号,对应的经纬度时,使用百度地图接口,免费注册得到一个apk,返回经纬度结果如下所示:
- import requests
- import re
-
- rep = requests.get(
- 'https://api.map.baidu.com/geocoding/v3/?address=北京市海淀区清华东路35号&output=json&ak=你的apk&callback=showLocation')
- print(re.findall(r'"lng":(.*),"lat":(.*?)}', rep.text))
-
- # 结果显示
- [('116.35194130702107', '40.00664192889596')]
8 自动化测试Selenium
Selenium是一个编写自动化测试用例的测试框架。
尽管它是用Java编写的,Python包提供对几乎所有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://baidu.com/"
- brower.get(website_URL)
-
- refreshrate = int(15)
-
- # 一直保持运行
- while True:
- time.sleep(refreshrate)
- browser.refresh()
现在,该脚本每15秒刷新浏览器中的百度主页。
9 图像处理Pillow
很多时候,需要以某种方式修改图像,使其更适合,例如模糊细节、组合一个或多个图像或创建缩略图。
将自制的Pillow脚本与Click组合在一起,然后直接从命令行访问它们,这对于加快重复的图像处理任务非常有用。
看一个模糊图像的快速示例:
- from PIL import Image, ImageFilter
-
- try:
- original = Image.open("python-logo.png")
-
- # Blur the image
- blurred = original.filter(ImageFilter.BLUR)
-
- # Display both images
- original.show()
- blurred.show()
-
- blurred.save("blurred.png")
-
- except:
- print('未能加载图像')