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

时间:2022-11-28 18:56:33

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

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

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

分别是speedtest、socket、textblob、pygame、pyqrcode、pyshorteners、googletrans、pendulum、fabulous、pywebview。

下面就给大家介绍一下~

① speedtest(网速测试)

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

使用百度源安装库。

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

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

  1. import speedtest  
  2. # 全局取消证书验证  
  3. import ssl  
  4. sslssl._create_default_https_context = ssl._create_unverified_context  
  5. test = speedtest.Speedtest()  
  6. down = test.download() 
  7. upload = test.upload()  
  8. print(f"上传速度:{round(upload/(1024 * 1024),2)} Mbps")  
  9. print(f"下载速度:{round(down/(1024 * 1024),2)} Mbps") 

得到结果如下。

  1. 上传速度:31.3 Mbps  
  2. 下载速度:86.34 Mbps 

看起来,小F的网速还挺快的。

② socket(获取本机ip地址)

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

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

  1. import socket as f  
  2. hostn = f.gethostname()  
  3. Laptop = f.gethostbyname(hostn)  
  4. print("你的电脑本地IP地址是:" + Laptop) 

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

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

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

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

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

  1. import json  
  2. from urllib.request import urlopen  
  3. # 全局取消证书验证  
  4. import ssl  
  5. sslssl._create_default_https_context = ssl._create_unverified_context  
  6. with urlopen(r'https://jsonip.com') as fp:  
  7.     content = fp.read().decode()  
  8. ip = json.loads(content)['ip']  
  9. print("你的电脑公网IP地址是:" + ip) 

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

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

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

③ textblob(文本处理)

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

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

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

  1. from textblob import TextBlob  
  2. a = TextBlob("I dream about workin with goof company")  
  3. aa = a.correct()  
  4. print(a) 

结果如下。

  1. I dream about working with good company 

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

④ pygame(制作游戏)

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

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

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

  1. from pygame import mixer  
  2. import pygame  
  3. import sys  
  4. pygame.display.set_mode([300, 300])  
  5. music = "my_dream.mp3"  
  6. mixer.init()  
  7. mixer.music.load(music)  
  8. mixer.music.play()  
  9. # 点击×可以关闭界面的代码  
  10. while 1:  
  11.     for event in pygame.event.get():  
  12.         if event.type == pygame.QUIT:  
  13.             sys.exit() 

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

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

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

⑤ pyqrcode(生成二维码)

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

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

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

安装。

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

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

  1. import pyqrcode  
  2. import png  
  3. from pyqrcode import QRCode  
  4. inpStr = "www.baidu.com"  
  5. qrc = pyqrcode.create(inpStr)  
  6. qrc.png("baidu.png", scale=6

得到二维码图片如下。

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

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

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

使用文档:

https://pythonhosted.org/PyQRCode/

⑥ pyshorteners(短网址)

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

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

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

安装。

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

以clck.ru格式为例。

  1. import pyshorteners as psn  
  2. url = "http://www.shuhai.com/"  
  3. u = psn.Shortener().clckru.short(url)  
  4. print(u) 

得到结果如下。

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

是可以正常访问的。

使用文档:

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

⑦ googletrans(翻译)

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

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

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

查看所有支持的语言。

  1. import googletrans  
  2. from googletrans import Translator  
  3. print(googletrans.LANGUAGES) 

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

  1. LANGUAGES = {  
  2.     'af': 'afrikaans',  
  3.     'sq': 'albanian',  
  4.     'am': 'amharic',  
  5.     'ar': 'arabic',  
  6.     'hy': 'armenian', 
  7.     'az': 'azerbaijani',  
  8.     'eu': 'basque',  
  9.     'be': 'belarusian',  
  10.     'bn': 'bengali',  
  11.     'bs': 'bosnian',  
  12.     'bg': 'bulgarian',  
  13.     'ca': 'catalan',  
  14.     'ceb': 'cebuano',  
  15.     'ny': 'chichewa',  
  16.     'zh-cn': 'chinese (simplified)',  
  17.     'zh-tw': 'chinese (traditional)',  
  18.     'co': 'corsican',  
  19.     'hr': 'croatian',  
  20.     'cs': 'czech',  
  21.     'da': 'danish',  
  22.     'nl': 'dutch',  
  23.     'en': 'english',  
  24.     'eo': 'esperanto',  
  25.     'et': 'estonian',  
  26.     'tl': 'filipino',  
  27.     'fi': 'finnish',  
  28.     'fr': 'french',  
  29.     'fy': 'frisian',  
  30.     'gl': 'galician',  
  31.     'ka': 'georgian',  
  32.     'de': 'german',  
  33.     'el': 'greek',  
  34.     'gu': 'gujarati',  
  35.     'ht': 'haitian creole',  
  36.     'ha': 'hausa',  
  37.     'haw': 'hawaiian',  
  38.     'iw': 'hebrew',  
  39.     'he': 'hebrew',  
  40.     'hi': 'hindi',  
  41.     'hmn': 'hmong',  
  42.     'hu': 'hungarian',  
  43.     'is': 'icelandic', 
  44.     'ig': 'igbo',  
  45.     'id': 'indonesian',  
  46.     'ga': 'irish',  
  47.     'it': 'italian',  
  48.     'ja': 'japanese',  
  49.     'jw': 'javanese',  
  50.     'kn': 'kannada',  
  51.     'kk': 'kazakh',  
  52.     'km': 'khmer',  
  53.     'ko': 'korean',  
  54.     'ku': 'kurdish (kurmanji)',  
  55.     'ky': 'kyrgyz',  
  56.     'lo': 'lao',  
  57.     'la': 'latin',  
  58.     'lv': 'latvian',  
  59.     'lt': 'lithuanian',  
  60.     'lb': 'luxembourgish',  
  61.     'mk': 'macedonian',  
  62.     'mg': 'malagasy',  
  63.     'ms': 'malay',  
  64.     'ml': 'malayalam',  
  65.     'mt': 'maltese',  
  66.     'mi': 'maori',  
  67.     'mr': 'marathi',  
  68.     'mn': '*n',  
  69.     'my': 'myanmar (burmese)',  
  70.     'ne': 'nepali',  
  71.     'no': 'norwegian',  
  72.     'or': 'odia', 
  73.     'ps': 'pashto', 
  74.     'fa': 'persian',  
  75.     'pl': 'polish',  
  76.     'pt': 'portuguese',  
  77.     'pa': 'punjabi',  
  78.     'ro': 'romanian',  
  79.     'ru': 'russian',  
  80.     'sm': 'samoan',  
  81.     'gd': 'scots gaelic',  
  82.     'sr': 'serbian',  
  83.     'st': 'sesotho',  
  84.     'sn': 'shona', 
  85.     'sd': 'sindhi',  
  86.     'si': 'sinhala',  
  87.     'sk': 'slovak',  
  88.     'sl': 'slovenian',  
  89.     'so': 'somali',  
  90.     'es': 'spanish',  
  91.     'su': 'sundanese',  
  92.     'sw': 'swahili',  
  93.     'sv': 'swedish',  
  94.     'tg': 'tajik',  
  95.     'ta': 'tamil',  
  96.     'te': 'telugu',  
  97.     'th': 'thai',  
  98.     'tr': 'turkish',  
  99.     'uk': 'ukrainian',  
  100.     'ur': 'urdu',  
  101.     'ug': '*',  
  102.     'uz': 'uzbek',  
  103.     'vi': 'vietnamese',  
  104.     'cy': 'welsh',  
  105.     'xh': 'xhosa',  
  106.     'yi': 'yiddish',  
  107.     'yo': 'yoruba',  
  108.     'zu': 'zulu',  

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

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

结果如下。

  1. # 翻译结果  
  2. Translated(src=zh-CN, dest=entext=Hellopronunciation=Noneextra_data="{'translat..."

src:源文本的语言

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

text:翻译的结果

使用文档:

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

⑧ pendulum(时间)

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

安装。

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

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

  1. import pendulum  
  2. past = pendulum.now().subtract(minutes=2 
  3. print(past.diff_for_humans())  
  4. print(past) 

结果如下。

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

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

使用文档地址:

https://pendulum.eustace.io/

⑨ fabulous(添加文本颜色)

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

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

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

安装。

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

下面来看一个示例吧!

  1. from fabulous.color import bold, magenta, highlight_red  
  2. print(bold(magenta(  
  3.     """  
  4.     hello world  
  5.     this is some new line  
  6.     and here is the last line. :)  
  7.     """  
  8. ))) 

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

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

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

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

⑩ pywebview(GUI浏览器)

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

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

安装。

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

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

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

结果如下:

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

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

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

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

原文地址:https://mp.weixin.qq.com/s/NDPAbrBDOF2qImgB_B5cqA