这10个奇妙的python库,你必须要试试!

大数据v 大数据v     2022-12-20     304

关键词:


导读:Python有着很多很酷的第三方库,可以使任务变得更容易。

今天就给大家分享10个有趣的Python库,每个都非常实用!

作者:小F

来源:法纳斯特(ID:walker398)

这10个库分别是speedtest、socket、textblob、pygame、pyqrcode、pyshorteners、googletrans、pendulum、fabulous、pywebview。

下面就给大家介绍一下~

01 speedtest(网速测试)

Speedtest模块可以测试电脑的网络带宽大小。

使用百度源安装库。

# 安装speedtest
pip install speedtest -i https://mirror.baidu.com/pypi/simple/

使用时,需要取消证书验证。

import speedtest

# 全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

test = speedtest.Speedtest()
down = test.download()
upload = test.upload()

print(f"上传速度:round(upload/(1024 * 1024),2) Mbps")
print(f"下载速度:round(down/(1024 * 1024),2) Mbps")

得到结果如下。

上传速度:31.3 Mbps
下载速度:86.34 Mbps

02 socket(获取本机ip地址)

使用socket,先获取电脑的主机名后,再获取本机的IP地址。

其中socket是Python内置标准库,无需安装。

import socket as f

hostn = f.gethostname()
Laptop = f.gethostbyname(hostn)
print("你的电脑本地IP地址是:" + Laptop)

得到结果如下,此IP为局域网内IP

你的电脑本地IP地址是:192.168.2.101

如若想获取电脑的公网IP地址,可以借助一些第三方网站,比如下面这个。

# 浏览器访问, 返回公网IP地址
https://jsonip.com

代码如下,同样取消证书验证。

import json
from urllib.request import urlopen

# 全局取消证书验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context


with urlopen(r'https://jsonip.com') as fp:
    content = fp.read().decode()

ip = json.loads(content)['ip']
print("你的电脑公网IP地址是:" + ip)

对网站发起请求,解析返回的结果。

最后成功得到公网IP地址。

# 这里随便写了一个~
你的电脑公网IP地址是:120.236.128.201

03 textblob(文本处理)

TextBlob是一个用于处理文本数据的Python库,仅为英文分析。

中文则可以使用SnowNLP,能够方便的处理中文文本内容,是受到了TextBlob的启发而写的。

下面就给英文做一个拼写检查。

from textblob import TextBlob

a = TextBlob("I dream about workin with goof company")
a = a.correct()
print(a)

结果如下。

I dream about working with good company

可以看到,句子中的单词被更正了。

04 pygame(制作游戏)

pygame,一个制作游戏的Python库。

不仅给开发人员提供了制作游戏的图形、声音库,还可以使用内置的模块来实现复杂的游戏逻辑。

下面我们使用pygame来制作一个小型的音乐播放器。

from pygame import mixer
import pygame
import sys

pygame.display.set_mode([300, 300])

music = "my_dream.mp3"
mixer.init()
mixer.music.load(music)
mixer.music.play()

# 点击×可以关闭界面的代码
while 1:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()

运行上面的代码,电脑就会播放音乐。

必须给pygame添加图形化界面,要不然没声音。

05 pyqrcode(生成二维码)

二维码简称QR Code(Quick Response Code),学名为快速响应矩阵码,是二维条码的一种。由日本的Denso Wave公司于1994年发明。

现随着智能手机的普及,已广泛应用于平常生活中,例如商品信息查询、社交好友互动、网络地址访问等等。

pyqrcode模块则是一个QR码生成器,使用简单,用纯python编写。

安装。

# 安装pyqrcode
pip install pyqrcode -i https://mirror.baidu.com/pypi/simple/

下面就将「百度一下」生成一个二维码。

import pyqrcode
import png
from pyqrcode import QRCode


inpStr = "www.baidu.com"
qrc = pyqrcode.create(inpStr)
qrc.png("baidu.png", scale=6)

得到二维码图片如下。

微信扫描出来是文本内容,为百度网址,应该是有所操作。

用手机的浏览器扫描,则可以正常跳转网页。

使用文档:

https://pythonhosted.org/PyQRCode/

06 pyshorteners(短网址)

pyshorteners是一个简单的URL缩短Python库。

提供了18种短链根域名供使用。

安装。

# 安装pyshorteners
pip install pyshorteners -i https://mirror.baidu.com/pypi/simple/

以clck.ru格式为例。

import pyshorteners as psn

url = "http://www.shuhai.com/"
u = psn.Shortener().clckru.short(url)
print(u)

得到结果如下。

# 结果
https://clck.ru/WPJgg

是可以正常访问的。

使用文档:

https://pyshorteners.readthedocs.io/en/latest/

07 googletrans(翻译)

Googletrans是一个免费且无限制的Python翻译库,可以用来自动侦测语言种类、翻译之类。

安装3.1.0a0版本,最新版无法使用。

# 安装googletrans
pip install googletrans==3.1.0a0 -i https://mirror.baidu.com/pypi/simple/

查看所有支持的语言。

import googletrans
from googletrans import Translator

print(googletrans.LANGUAGES)

结果如下,其中中文有简体和繁体两种。

LANGUAGES = 
    'af': 'afrikaans',
    'sq': 'albanian',
    'am': 'amharic',
    'ar': 'arabic',
    'hy': 'armenian',
    'az': 'azerbaijani',
    'eu': 'basque',
    'be': 'belarusian',
    'bn': 'bengali',
    'bs': 'bosnian',
    'bg': 'bulgarian',
    'ca': 'catalan',
    'ceb': 'cebuano',
    'ny': 'chichewa',
    'zh-cn': 'chinese (simplified)',
    'zh-tw': 'chinese (traditional)',
    'co': 'corsican',
    'hr': 'croatian',
    'cs': 'czech',
    'da': 'danish',
    'nl': 'dutch',
    'en': 'english',
    'eo': 'esperanto',
    'et': 'estonian',
    'tl': 'filipino',
    'fi': 'finnish',
    'fr': 'french',
    'fy': 'frisian',
    'gl': 'galician',
    'ka': 'georgian',
    'de': 'german',
    'el': 'greek',
    'gu': 'gujarati',
    'ht': 'haitian creole',
    'ha': 'hausa',
    'haw': 'hawaiian',
    'iw': 'hebrew',
    'he': 'hebrew',
    'hi': 'hindi',
    'hmn': 'hmong',
    'hu': 'hungarian',
    'is': 'icelandic',
    'ig': 'igbo',
    'id': 'indonesian',
    'ga': 'irish',
    'it': 'italian',
    'ja': 'japanese',
    'jw': 'javanese',
    'kn': 'kannada',
    'kk': 'kazakh',
    'km': 'khmer',
    'ko': 'korean',
    'ku': 'kurdish (kurmanji)',
    'ky': 'kyrgyz',
    'lo': 'lao',
    'la': 'latin',
    'lv': 'latvian',
    'lt': 'lithuanian',
    'lb': 'luxembourgish',
    'mk': 'macedonian',
    'mg': 'malagasy',
    'ms': 'malay',
    'ml': 'malayalam',
    'mt': 'maltese',
    'mi': 'maori',
    'mr': 'marathi',
    'mn': 'mongolian',
    'my': 'myanmar (burmese)',
    'ne': 'nepali',
    'no': 'norwegian',
    'or': 'odia',
    'ps': 'pashto',
    'fa': 'persian',
    'pl': 'polish',
    'pt': 'portuguese',
    'pa': 'punjabi',
    'ro': 'romanian',
    'ru': 'russian',
    'sm': 'samoan',
    'gd': 'scots gaelic',
    'sr': 'serbian',
    'st': 'sesotho',
    'sn': 'shona',
    'sd': 'sindhi',
    'si': 'sinhala',
    'sk': 'slovak',
    'sl': 'slovenian',
    'so': 'somali',
    'es': 'spanish',
    'su': 'sundanese',
    'sw': 'swahili',
    'sv': 'swedish',
    'tg': 'tajik',
    'ta': 'tamil',
    'te': 'telugu',
    'th': 'thai',
    'tr': 'turkish',
    'uk': 'ukrainian',
    'ur': 'urdu',
    'ug': 'uyghur',
    'uz': 'uzbek',
    'vi': 'vietnamese',
    'cy': 'welsh',
    'xh': 'xhosa',
    'yi': 'yiddish',
    'yo': 'yoruba',
    'zu': 'zulu',

翻译一句「你好」试一下。

translater = Translator()
out = translater.translate("你好", dest='en', src='auto')
print(out)

结果如下。

# 翻译结果
Translated(src=zh-CN, dest=en, text=Hello, pronunciation=None, extra_data="'translat...")
  • src:源文本的语言

  • dest:将源文本转换为的语言。

  • text:翻译的结果

使用文档:

https://py-googletrans.readthedocs.io/en/latest/

08 pendulum(时间)

Pendulum是一个处理日期和时间的Python库,该库在涉及时区的情况下非常有用。

安装。

# 安装pendulum
pip install pendulum -i https://mirror.baidu.com/pypi/simple/

来看一下2分钟前的时间。

import pendulum

past = pendulum.now().subtract(minutes=2)
print(past.diff_for_humans())
print(past)

结果如下。

2 minutes ago
2021-07-25T19:10:09.222953+08:00

还有很多方便使用的地方,可以查看使用文档。

使用文档:

https://pendulum.eustace.io/

09 fabulous(添加文本颜色)

如果你是在命令行上运行Python程序,那么输出都是相同颜色,不方便观察。

使用Fabulous,则可以添加图像、彩色文本来凸显输出。

安装。

# 安装fabulous
pip install fabulous -i https://mirror.baidu.com/pypi/simple/

下面来看一个示例吧!

from fabulous.color import bold, magenta, highlight_red

print(bold(magenta(
    """
    hello world
    this is some new line
    and here is the last line. :)
    """
)))

结果如下,输出字体加粗且有颜色。

更多配置,可以访问使用文档:

https://jart.github.io/fabulous/

10 pywebview(GUI浏览器)

pywebview是一个Python库,用于以GUI形式显示HTML、CSS、和JavaScript内容。

这意味着使用这个库,你可以在桌面应用程序中显示网页。

安装。

# 安装pywebview
pip install pywebview -i https://mirror.baidu.com/pypi/simple/

启动一个给定网站的窗口,运行下面的代码。

import webview

window = webview.create_window(
    title='百度一下,全是广告',
    url='http://www.baidu.com',
    width=850,
    height=600,
    resizable=False,    # 固定窗口大小
    text_select=False,   # 禁止选择文字内容
    confirm_close=True   # 关闭时提示
)
webview.start()

结果如下。

好了,本期的分享就到此结束了。

总的来说,这些小众的Python库,还是挺有用的。

有兴趣的小伙伴可以访问相关文档,自行去实践学习。

延伸阅读????

《利用Python进行数据分析》(原书第2版)

干货直达????

更多精彩????

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 读书 | 书单 | 硬核 | 干货 讲明白 | 神操作

大数据 | 云计算 | 数据库 | Python | 爬虫 | 可视化

AI | 人工智能 | 机器学习 | 深度学习 | NLP

5G | 中台 | 用户画像 1024 | 数学 | 算法 数字孪生

据统计,99%的大咖都关注了这个公众号

????

德到课堂---你必须要懂的十大职场生存法则

德到领袖与你分享:你必须要懂的十大职场生存法则在职场中,总需要有一些生存规则,那么什么样的生存法则才适用呢,今天就来分享一下你必须要懂的十大职场中的生存规律。01十大职场生存规律第一:男女搭档干活不累。... 查看详情

关于配置,你必须要知道这一点....(代码片段)

kafka管控平台推荐使用滴滴开源的Kafka运维管控平台(戳我呀)更符合国人的操作习惯、更强大的管控能力、更高效的问题定位能力、更便捷的集群运维能力、更专业的资源治理、更友好的运维生态、BliBli视频:石臻臻的杂货铺kafka的... 查看详情

你必须要知道的10款app开发框架

对于大部分Web开发人员,HTML、CSS和Javascript是他们最熟练的开发技能。然而,开发一个原生的移动App,对他们来说却是完全陌生的领域。因为开发Android,iOS或WindowsPhone上的原生App(app开发公司ty300.com),需要掌握完全不同的开发... 查看详情

你必须要会uvloop!让pythonasyncio异步编程性能直逼go协程性能(代码片段)

背景最近我在思考后端优化的事情,了解到了uvloop,它是python原生asyncio事件循环的替代品。先介绍下asyncioPython从3.4开始,引入了asyncio库,参考PEP-3156。Python从3.5开始,引入了async和await语法,参考PEP-0492。Python中的用法其实跟java... 查看详情

你必须要知道的软件测试3个主流方式

在产品项目的最后推进过程中,会经过一系列的测试来判断以及优化产品,在测试中使产品的属性特征最优化,最终达到吸引更多客户的目的;本文作者分享了三种软件测试的主流方式,我们一起来了解一下... 查看详情

10个你必须要知道的重要javascript数组方法(代码片段)

...忙碌的初学者,我选择了10种最常见的数组方法,你必须学习它们,这些可以帮助你提升学习效率,节省时间。为了便于理解,我为每个数组方法提供了一个示例用例。01、Array.map()通过调用回调函数,map()... 查看详情

10个你必须要知道的重要javascript数组方法(代码片段)

...忙碌的初学者,我选择了10种最常见的数组方法,你必须学习它们,这些可以帮助你提升学习效率,节省时间。为了便于理解,我为每个数组方法提供了一个示例用例。01、Array.map()通过调用回调函数,map()... 查看详情

如何用手机编程python?

以安卓手机为例,有2种方法,一种是安装QPython3,一种是安装Termux,这2个软件都能完成python的编辑和运行。1.QPython3:这是一个在安卓手机上运行python3的脚本引擎,整合了python3解释器、控制台、QEdit编辑器和SLA4库,可以在安卓... 查看详情

这10个python机器学习库,你用过哪些?

来源:量子位1.AwkwardArray根据官方介绍,AwkwardArray用于嵌套的、大小不一的数据,包括任意长度的列表、记录、混合的类型和缺失数据,使用起来类似NumPy。看起来像是升级版的NumPy呀。果然,不同长度的数组... 查看详情

oracle!你必须要知道的knowledgepoints(入门篇)(代码片段)

一、入门oracle有四个用户,分别为sys、system、sysman和scott,其中sys是oracle权限最高的用户,类似于Linux系统的root,scott是实例用户,上课就以这个用户里的三张员工表empno、dept、salgrade作为示例来授课。启动服务1.快捷键ctrl+alt+del打... 查看详情

自动化脚本如何切换环境?pytest这些功能你必须要掌握

...境的能力,那么今天小编就给大家聊一下,如何能让我们python语言写的测试用例可以自由切换到不同的环境下面去运行呢?Python写测试用例离不开单元测试框架,最近比较火 查看详情

别炫砂糖橘了,快来看看这10个你必须要会的测试工具...

新年快乐!相信最近大热的砂糖橘大赛你也影响了不少,躺平在床上开炫砂糖橘了。但是假期肉眼可见的短暂,相信有很多人都已经奔赴在了工作的战场上,还是想跟在家烤火炫砂糖橘的人说,是时候学习了... 查看详情

在做自动化测试之前你必须要知道的事

做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。我们更普遍的认识把“自动化测试”看做“基于产品或项目UI层的自动化测试”。 UI层的自动化测试,这个大家应该再熟悉不过... 查看详情

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)(代码片段)

想要节省空间,你必须要知道——动态内存管理(附通讯录动态内存版源码)1.    为什么存在动态内存分配2.    动态内存函数的介绍2.1    malloc2.2    freemalloc和free通常配合一起使用:2.3    calloc2.4   ... 查看详情

深入集合类系列——你必须要知道的两棵继承树

查看详情

机器学习必知的10个python库

来源:网络python是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。python在开发人员中流行的原因有很多。然而,最重要的一点是它有大量的库供用户使用。python的简单性吸引了许多开发人员使... 查看详情

机器学习必知的10个python库

来源:网络python是最流行和使用最广泛的编程语言之一,它已经取代了业界许多编程语言。python在开发人员中流行的原因有很多。然而,最重要的一点是它有大量的库供用户使用。python的简单性吸引了许多开发人员使... 查看详情

jmeter--作为测试你必须要知道的基础名词与环境搭建

       大家好,我们本章开始学习Jmeter,后续还会有RF以及LoadRunner的介绍,为什么要学习Jmeter,它主要是用来做性能测试的,其中它也需要间接或直接的需要用到抓包工具,至于为什么需要用到抓包工... 查看详情