女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Boltons:超過(guò)230個(gè)的純Python實(shí)用工具庫(kù)

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-10-17 10:56 ? 次閱讀

經(jīng)過(guò)了幾十年的發(fā)展,Python 的輪子生態(tài)越來(lái)越豐富,例如針對(duì)網(wǎng)絡(luò)請(qǐng)求有 requests,針對(duì)命令行開(kāi)發(fā)有 typer 等等,這些第三方庫(kù)給我們的日常開(kāi)發(fā)帶來(lái)了極大的便利。

今天給兄弟們推薦另一個(gè)第三方庫(kù) -- Boltons,和大多數(shù)第三方庫(kù)不太一樣,它并不是針對(duì)某一功能的工具庫(kù),而是將開(kāi)發(fā)中那些重復(fù)性(經(jīng)常使用)及復(fù)雜度較高(不容易編寫(xiě))較高的代碼剝離出來(lái),并按照操作對(duì)象分門(mén)別類(lèi)整合在一起的工具庫(kù)。

Boltons 使用的是 BSD 許可證,到目前為止已經(jīng)收錄 超過(guò)230個(gè) 的純 Python實(shí)用工具庫(kù),這些工具庫(kù)與 Python 標(biāo)準(zhǔn)庫(kù)并沒(méi)有重合,是補(bǔ)充的關(guān)系,包括:

  • cacheutils 工具集:用于管理緩存,提供 LRU 和 LRI 等緩存方式
  • debugutils 工具庫(kù):用于調(diào)試實(shí)用程序
  • dictutils 工具庫(kù):映射類(lèi)型(OMD)
  • ecoutils 工具庫(kù):生態(tài)系統(tǒng)分析
  • fileutils工具庫(kù):文件系統(tǒng)幫助器,提供原子文件保存等功能
  • formatutils 工具庫(kù):str.format() 工具箱
  • funcutils 工具庫(kù):functools 修正
  • gcutils 工具庫(kù):垃圾收集工具
  • ioutils 工具庫(kù):增強(qiáng)輸入/輸出功能
  • iterutils 工具庫(kù):itertools 改進(jìn)
  • jsonutils 工具庫(kù):JSON交互
  • listutils 工具庫(kù):list 衍生物
  • mathutils 工具庫(kù):提供數(shù)學(xué)函數(shù)的支持
  • mboxutils 工具庫(kù):Unix郵箱實(shí)用程序
  • namedutils 工具庫(kù):提供兩種輕量級(jí)容器類(lèi)型
  • pathutils 工具庫(kù):提供處理文件路徑的函數(shù)
  • queueutils 工具庫(kù):優(yōu)先級(jí)隊(duì)列,目前提供基于堆及基于排序列表兩種隊(duì)列實(shí)現(xiàn)
  • setutils 工具庫(kù):IndexedSet 類(lèi)型
  • socketutils 工具庫(kù):socket 包裝紙
  • statsutils 工具庫(kù):統(tǒng)計(jì)基本面
  • strutils 工具庫(kù):文本操作,涉及到方方面面,有非常多的工具函數(shù)
  • tableutils 工具庫(kù):2D數(shù)據(jù)結(jié)構(gòu)
  • tbutils 工具庫(kù):回溯跟蹤和調(diào)用堆棧,豐富的Tracebackinfo類(lèi)實(shí)現(xiàn)了棧追蹤
  • timeutils 工具庫(kù):增加 datetime 對(duì)象處理能力
  • typeutils 工具庫(kù):類(lèi)型處理
  • urlutils 工具庫(kù):結(jié)構(gòu)化URL,方便對(duì) URL 進(jìn)行處理

# 1. 如何安裝

安裝只需要一條命令

pip install boltons

# 2. 實(shí)用范例

Boltons 的工具庫(kù)函數(shù)非常多,不能一一舉例,本文只摘取一些明哥認(rèn)為經(jīng)典的工具做為演示

遍歷日期

在 timeutils 工具庫(kù)中有一個(gè) daterange 可以對(duì)日期進(jìn)行遍歷,省去自己手動(dòng)構(gòu)造日期

>> > from datetime import date
 >> > from boltons.timeutils import daterange
 >> >
 >> > christmas = date(year=2022, month=12, day=25)
 >> > new_year = date(year=2023, month=1,  day=1)
 >> > for day in daterange(christmas, new_year):
...     print(repr(day))
...
datetime.date(2022, 12, 25)
datetime.date(2022, 12, 26)
datetime.date(2022, 12, 27)
datetime.date(2022, 12, 28)
datetime.date(2022, 12, 29)
datetime.date(2022, 12, 30)
datetime.date(2022, 12, 31)

當(dāng)然,你也可以指定遍歷的間隔

>> > for day in daterange(date(2017, 5, 1), date(2017, 8, 1),
...                      step=(0, 1, 0), inclusive=True):
...     print(repr(day))
...
datetime.date(2017, 5, 1)
datetime.date(2017, 6, 1)
datetime.date(2017, 7, 1)
datetime.date(2017, 8, 1)

其中參數(shù)的意義是:

  • step (int):元組 (year, month, day) 。
  • inclusive (bool) :是否包含 stop 的日期

范圍轉(zhuǎn)具體

在 libvirt 里的 xml 上的 CPU 上通常都是這樣表示的

圖片

如何將這種格式(emulatorpin 里的 cpuset)的范圍,直接轉(zhuǎn)成具體包含了哪些核呢?

使用 boltons 的 strutils 工具包的一個(gè)函數(shù)立馬搞定

>> > from boltons.strutils import parse_int_list
 >> >
 >> > parse_int_list('0,7,21-22,48,55,69-70')
[0, 7, 21, 22, 48, 55, 69, 70]

遞歸映射

iterutils 工具包里提供一個(gè) remap 函數(shù),可用于遍歷和轉(zhuǎn)換嵌套結(jié)構(gòu)。

如下面這個(gè)例子,將刪除所有 value = None 的元素

>> > from pprint import pprint
 >> >
 >> > reviews = {'Star Trek': {'TNG': 10, 'DS9': 8.5, 'ENT': None},
...            'Babylon 5': 6, 'Dr. Who': None}
 >> >
 >> >
 >> > from boltons.iterutils import remap
 >> >
 >> > pprint(remap(reviews, lambda p, k, v: v is not None))
{'Babylon 5': 6, 'Star Trek': {'DS9': 8.5, 'TNG': 10}}

與 remap 相似的函數(shù)還有一個(gè) research,可用于遞歸匹配查找

假設(shè)有如下一個(gè)字典

root = {'a': {'b': 1, 'c': (2, 'd', 3)}, 'e': None}

此時(shí)我想找出所有 value 為整數(shù)的的項(xiàng),可以這樣子實(shí)現(xiàn)

>> > from boltons.iterutils import research
> >>
 >> > res = research(root, query=lambda p, k, v: isinstance(v, int))
 >> > print(sorted(res))
[(('a', 'b'), 1), (('a', 'c', 0), 2), (('a', 'c', 2), 3)]

流式讀取多文件

如果你有多個(gè)文件需要連接起來(lái)處理,可以使用 ioutils 工具包里的 MultiFileReader

>> > from boltons.ioutils import MultiFileReader, BytesIO
 >> >
 >> > mfr = MultiFileReader(BytesIO(b'ab'), BytesIO(b'cd'), BytesIO(b'e'))
 >> > mfr.read(3).decode('ascii')
'abc'

創(chuàng)建多級(jí)目錄

Linux 上可以使用 mkdir -p 命令來(lái)創(chuàng)建多級(jí)目錄,但若使用 Python 來(lái)實(shí)現(xiàn)這個(gè)功能其實(shí)是非常麻煩的,如果不斷的判斷,一級(jí)一級(jí)往下去創(chuàng)建

而在 boltons 上的 fileutils 工具包提供的 mkdir_p 函數(shù),可以達(dá)到 Linux 上 mkdir -p 絲滑體驗(yàn)

>> > from boltons.fileutils import mkdir_p
 >> >
 >> > mkdir_p("/home/foo/bar/test")

URL結(jié)構(gòu)處理

一個(gè) URL 由下面結(jié)構(gòu)組成

foo://user:[email protected]:8042/over/there?name=ferret#nose
 _/   _______/ _________/ __/_________/ _________/ __/
  |        |          |        |      |           |        |
scheme  userinfo     host     port   path       query   fragment

當(dāng)我想從 URL 中解析獲取部分內(nèi)容時(shí),就要對(duì)該字符串進(jìn)行正則匹配。

若使用 boltons 中的 urlutils 工具庫(kù) 中的 URL 類(lèi),可以很方便對(duì)獲取任何 url 構(gòu)成

>> > from boltons.urlutils import URL
 >> >
 >> > url = URL('foo://example.com:8042/over/there?name=ferret#nose')
 >> > print(url.host)
example.com
 >> >
 >> > print(url.port)
8042
 >> >
 >> > print(url.path)
/over/there
 >> >
 >> > print(url.query_params)
QueryParamDict([('name', 'ferret')])

# 3. 寫(xiě)在最后

Boltons 是純Python,如果你不想引入 Boltons 巨大的工具箱時(shí),也不用擔(dān)心,每個(gè)模塊都是獨(dú)立的,沒(méi)有依賴關(guān)系,可以直接復(fù)制到項(xiàng)目中使用。Boltons 旨在為廣泛的基本功能提供最好的支持,是對(duì)標(biāo)準(zhǔn)庫(kù)的一個(gè)補(bǔ)充,并且將高級(jí)功能留給其他更加專(zhuān)業(yè)的第三方庫(kù)。推薦給大家使用!

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 緩存
    +關(guān)注

    關(guān)注

    1

    文章

    245

    瀏覽量

    27038
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70244
  • 工具
    +關(guān)注

    關(guān)注

    4

    文章

    314

    瀏覽量

    28160
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4825

    瀏覽量

    86163
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    matlab的實(shí)用工具命令

    matlab的實(shí)用工具命令實(shí)用工具 Abcdchk  檢測(cè)(A、B、C、D)組的一致性 Chop 取n個(gè)重要的位置 Dexresp 離散取樣響應(yīng)函數(shù) 
    發(fā)表于 09-22 15:56

    申請(qǐng)實(shí)用工具軟件版主!【申請(qǐng)通過(guò)】

    標(biāo)題:申請(qǐng)實(shí)用工具軟件區(qū)版主會(huì)員ID:jianqian1991年齡:20注冊(cè)日期:忘記了!申請(qǐng)日期:2010-04-27申請(qǐng)版塊:實(shí)用工具軟件特長(zhǎng)及愛(ài)好:籃球,電影申請(qǐng)理由:無(wú)!每天都到這里下資料!問(wèn)問(wèn)題!總不能沒(méi)點(diǎn)貢獻(xiàn)!自學(xué)階段沒(méi)有技術(shù)!只想申請(qǐng)個(gè)
    發(fā)表于 04-27 09:10

    51單片機(jī)實(shí)用工具

    51單片機(jī)實(shí)用工具
    發(fā)表于 12-20 22:36

    LabVIEW實(shí)用工具***寶典課件

    不知道有沒(méi)有人上傳過(guò)《labview實(shí)用工具詳解》和寶典配合真的很贊,不過(guò)只有前幾章,我是從圖書(shū)館借的書(shū),大家可以買(mǎi)一本
    發(fā)表于 01-25 22:40

    Labview實(shí)用工具詳解 代碼下載

    本帖最后由 tòrγㄚ 于 2015-7-8 10:10 編輯 Labview實(shí)用工具詳解 代碼下載
    發(fā)表于 06-30 15:43

    LabVIEW實(shí)用工具詳解簡(jiǎn)版.pdf

    LabVIEW實(shí)用工具詳解簡(jiǎn)版[url=https://bbs.elecfans.com/forum.php?mod=attachment&aid=MjcwNTU1fDk1ZTc1NWUyfDE0MzgwNDM5Nzl8MTM3MTg4fDUwMjI1MQ%3D%3D][/url]
    發(fā)表于 07-28 08:34

    labview實(shí)用工具詳解 配套程序

    labview實(shí)用工具詳解 配套程序
    發(fā)表于 10-22 01:04

    調(diào)整線條寬度的實(shí)用工具

    調(diào)整線條寬度的實(shí)用工具 在使用AutoCAD繪圖軟件繪制各類(lèi)圖形的工作中。最后一個(gè)階段是將圖形文件最終在打印機(jī)、繪圖機(jī)上輸出為圖紙。
    發(fā)表于 02-14 17:04 ?1044次閱讀

    uartassist串口調(diào)試助手_實(shí)用工具

    uartassist串口調(diào)試助手_實(shí)用工具,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-17 11:16 ?43次下載

    多種電子工程師實(shí)用工具大全

    本文主要介紹了多種電子工程師實(shí)用工具大全.
    發(fā)表于 06-27 08:00 ?139次下載
    多種電子工程師<b class='flag-5'>實(shí)用工具</b>大全

    電阻色環(huán)的識(shí)別實(shí)用工具應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是電阻色環(huán)的識(shí)別實(shí)用工具應(yīng)用程序免費(fèi)下載。
    發(fā)表于 11-12 08:00 ?5次下載
    電阻色環(huán)的識(shí)別<b class='flag-5'>實(shí)用工具</b>應(yīng)用程序免費(fèi)下載

    windows啟動(dòng)修復(fù)實(shí)用工具免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是windows啟動(dòng)修復(fù)實(shí)用工具免費(fèi)下載。
    發(fā)表于 12-10 08:00 ?1次下載
    windows啟動(dòng)修復(fù)<b class='flag-5'>實(shí)用工具</b>免費(fèi)下載

    LLC計(jì)算的實(shí)用工具應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是LLC計(jì)算的實(shí)用工具應(yīng)用程序免費(fèi)下載。
    發(fā)表于 03-31 08:00 ?91次下載
    LLC計(jì)算的<b class='flag-5'>實(shí)用工具</b>應(yīng)用程序免費(fèi)下載

    頻率電感電容計(jì)算的實(shí)用工具免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是頻率電感電容計(jì)算的實(shí)用工具免費(fèi)下載。
    發(fā)表于 05-06 16:38 ?47次下載
    頻率電感電容計(jì)算的<b class='flag-5'>實(shí)用工具</b>免費(fèi)下載

    如何使用 Python 來(lái)創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具

    本文將探討如何以 Zynq UltraScale 器件上的 IP 核為目標(biāo),使用 Python 來(lái)創(chuàng)建一些強(qiáng)大的應(yīng)用和實(shí)用工具。此處提供了一個(gè)程序包,供您用于讀取設(shè)備樹(shù)和訪問(wèn) IP 核。此外還提供一
    發(fā)表于 09-08 10:23 ?814次閱讀