2025年3月30日 星期日 甲辰(龙)年 月廿九 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > Python

非常实用的python库汇总

时间:08-21来源:作者:点击数:38
城东书院 www.cdsy.xyz
文章目录

越来越多的数据科学家开始使用Python,并且网上也有成千上万个Python包,但几乎没人能够全部使用它们。而本文将向大家介绍一些非常实用,但却不被大家熟知的Pytho库。

目前,网上已有成千上万个Python包,但几乎没有人能够全部知道它们。单单 PyPi上就有超过47000个包列表。

现在,越来越多的数据科学家开始使用Python,虽然他们从 pandas, scikit-learn, numpy中获得了不少好处,但我仍想向他们介绍一些年长且非常实用的Python库。在本文中,我将列一些不太知名的库,即使你是经验丰富的Python的开发者,也值得过来一看。

delorean

Dolorean是一个非常酷的日期/时间库。类似JavaScript的moment,拥有非常完善的技术文档。

  • from delorean import Delorean
  • EST = "US/Eastern"
  • d = Delorean(timezone=EST)
prettytable

你可能从未听过该库,因为它托管在GoogleCode。prettytable主要用于在终端或浏览器端构建很好的输出。

  • from prettytable import PrettyTable
  • table = PrettyTable(["animal", "ferocity"])
  • table.add_row(["wolverine", 100])
  • table.add_row(["grizzly", 87])
  • table.add_row(["Rabbit of Caerbannog", 110])
  • table.add_row(["cat", -1])
  • table.add_row(["platypus", 23])
  • table.add_row(["dolphin", 63])
  • table.add_row(["albatross", 44])
  • table.sort_key("ferocity")
  • table.reversesort = True
  • +----------------------+----------+
  • | animal | ferocity |
  • +----------------------+----------+
  • | Rabbit of Caerbannog | 110 |
  • | wolverine | 100 |
  • | grizzly | 87 |
  • | dolphin | 63 |
  • | albatross | 44 |
  • | platypus | 23 |
  • | cat | -1 |
  • +----------------------+----------+
snowballstemmer

好吧,我也是首次安装该库。这是一款非常瘦小的语言转换库,支持15种语言。

  • from snowballstemmer import EnglishStemmer, SpanishStemmer
  • EnglishStemmer().stemWord("Gregory")
  • # Gregori
  • SpanishStemmer().stemWord("amarillo")
  • # amarill
wget

你是否还记得,每一次都会因为某个目的而编写网络爬虫工具,以后再也不用了,因为wget就足够你使用了。wget是Python版的网络爬虫库,简单好用。

  • import wget
  • wget.download("http://www.cnn.com/")
  • # 100% [............................................................................] 280385 / 280385

备注:linux和osx用户这样用:from sh import wget。但是,wget模块还有一个更好的argument handline。

PyMC

scikit-learn似乎是所有人的宠儿,但在我看来,PyMC更有魅力。PyMC主要用来做Bayesian分析。

  • from pymc.examples import disaster_model
  • from pymc import MCMC
  • M = MCMC(disaster_model)
  • M.sample(iter=10000, burn=1000, thin=10)
  • [-----------------100%-----------------] 10000 of 10000 complete in 1.4 sec
sh

sh库用来将shell命令作为函数导入到Python中。在bash中使用是非常实用的,但是在Python中不容易记住怎么使用(即递归搜索文件)。

  • from sh import find
  • find("/tmp")
  • /tmp/foo
  • /tmp/foo/file1.json
  • /tmp/foo/file2.json
  • /tmp/foo/file3.json
  • /tmp/foo/bar/file3.json</pre>
fuzzywuzzy

Fuzzywuzzy是一个可以对字符串进行模糊匹配的库,大家有空可以去 查看源码

  • from fuzzywuzzy import fuzz
  • fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")
  • # 85
progressbar

progressbar是一个进度条库,该库提供了一个文本模式的progressbar。

  • from progressbar import ProgressBar
  • import time
  • pbar = ProgressBar(maxval=10)
  • for i in range(1, 11):
  • pbar.update(i)
  • time.sleep(1)
  • pbar.finish()
  • # 60% |######################################################## |</pre>
colorama

colorama主要用来给文本添加各种颜色,并且非常简单易用。

image.png
uuid

uuid是基于Python实现的UUID库,它实现了UUID标注的1,3,4和5版本,在确保唯一性上真的非常方便。

  • import uuid
  • print uuid.uuid4()
  • # e7bafa3d-274e-4b0a-b9cc-d898957b4b61</pre>
bashplotlib

bashplotlib是一个绘图库,它允许你使用stdin绘制柱状图和散点图等。

  • $ pip install bashplotlib
  • $ scatter --file data/texas.txt --pch x</pre>
image.png
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

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

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

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

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添加图形化界面,要不然没声音。

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/

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/

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/

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/

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/

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

结果如下

城东书院 www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐