【Python】分享几个好用到爆的Python内置模块
今天介紹幾個(gè)好用到爆的Python內(nèi)置庫(kù),相信大家看過(guò)之后會(huì)對(duì)今后的Python編程幫助多多
argparse
Python當(dāng)中的argparse模塊主要用于命令行的參數(shù)解析,可以幫助用戶輕松地編寫命令行接口,我們先來(lái)看一個(gè)例子
import?argparse#?解析參數(shù) parser?=?argparse.ArgumentParser() parser.add_argument("name") args?=?parser.parse_args()#?打印結(jié)果 print(f'Hello?{args.name}!')然后我們?cè)诮K端當(dāng)中運(yùn)行以下的代碼
python?python_package.py?俊欣就會(huì)出現(xiàn)以下的結(jié)果
Hello?俊欣!要是我們忘記帶上參數(shù)了,會(huì)自動(dòng)出現(xiàn)如下的提示
usage:?python_package.py?[-h]?name python_package.py:?error:?the?following?arguments?are?required:?name當(dāng)然我們也可以通過(guò)如下的命令行來(lái)查看需要添加什么樣的參數(shù)
python?python_package.py?-h出來(lái)的結(jié)果如下所示
usage:?python_package.py?[-h]?namepositional?arguments:nameoptional?arguments:-h,?--help??show?this?help?message?and?exit當(dāng)然我們并不知道這個(gè)name的參數(shù)到底指的是什么,因?yàn)槲覀兛梢愿囊幌挛覀儗懙某绦?/p>import?argparse#?解析參數(shù) parser?=?argparse.ArgumentParser() parser.add_argument("name",?help="Enter?your?name") args?=?parser.parse_args()print(f'Hello?{args.name}!')
這樣的話,我們?cè)賮?lái)運(yùn)行一下如下的命令行
python?python_package.py?-houtput
usage:?python_package.py?[-h]?namepositional?arguments:name????????Enter?your?nameoptional?arguments:-h,?--help??show?this?help?message?and?exit有時(shí)候我們想要輸入的不止一個(gè)參數(shù),我們可以這樣來(lái)做,
import?argparse#?解析參數(shù) parser?=?argparse.ArgumentParser() parser.add_argument("name",?help="Enter?your?name") parser.add_argument("age",?help='Enter?your?age',?type=int) args?=?parser.parse_args()born_year?=?2022?-?args.age print(f'Hello?{args.name}!?You?were?borned?in?{born_year}.')我們通過(guò)終端輸入如下的程序
python?python_package.py?俊欣?24output
Hello?俊欣!?You?were?borned?in?1998.shutil
shutil模塊提供了大量的文件高級(jí)操作。特別是針對(duì)文件的拷貝、刪除、移動(dòng)、壓縮和解壓縮等操作,我們先來(lái)看一個(gè)例子
import?shutil print(shutil.which("python"))output
路徑......上面返回的是Python可執(zhí)行程序的路徑,文件移動(dòng)的代碼是shutil.move(src, dst)
shutil.move("源路徑",?"目標(biāo)路徑")除此之外我們主要會(huì)用到的還有:
shutil.copyfile(src, dst): 復(fù)制文件
shutil.copytree(olddir, newdir, True/False):復(fù)制整個(gè)文件夾目錄
shutil.rmtree(src): 遞歸刪除一整個(gè)目錄以及目錄文件夾下的所有內(nèi)容
glob
glob模塊主要是用來(lái)查找符合特定規(guī)則的目錄和文件,并將查找出來(lái)的結(jié)果返回到一個(gè)列表當(dāng)中來(lái)。它還可以和正則通配符一起來(lái)使用,例如
def?choose_numbered_files(root="."):return?glob.glob(f"{root}/[0-9].*")choose_numbered_files("images")返回的是在images路徑下的帶有數(shù)字的文件,結(jié)果如下
['images\\1.gif','images\\1.png','images\\2.gif','images\\2.png','images\\3.png',]上面用到的glob.glob()返回的是符合匹配條件的所有文件的路徑,而glob.iglob()返回的是一個(gè)迭代對(duì)象,需要循環(huán)遍歷獲取每個(gè)元素之后得到符合匹配條件的所有文件的路徑。
pprint
pprint模塊提供了“美化打印”任意Python數(shù)據(jù)結(jié)構(gòu)的功能,方便使用者閱讀,要是用普通的print來(lái)打印的話,如下
nested?=?[list("abcs"),?list("sdff"),?[1,?45,?4,?6,?7,?8],?list(range(12))] print(nested)output
[['a',?'b',?'c',?'s'],?['s',?'d',?'f',?'f'],?[1,?45,?4,?6,?7,?8],?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11]]而用pprint模塊來(lái)打印的話,如下
from?pprint?import?pprint pprint(nested)output
[['a',?'b',?'c',?'s'],['s',?'d',?'f',?'f'],[1,?45,?4,?6,?7,?8],[0,?1,?2,?3,?4,?5,?6,?7,?8,?9,?10,?11]]我們還能夠?qū)︽I值對(duì)類型的數(shù)據(jù)進(jìn)行格式化的輸出,代碼如下
import?json import?pprint from?urllib.request?import?urlopenwith?urlopen('https://pypi.org/pypi/sampleproject/json')?as?resp:project_info?=?json.load(resp)['info']pprint.pprint(project_info)output
{'author':?'A.?Random?Developer','author_email':?'author@example.com','bugtrack_url':?None,'classifiers':?[.......],'description':?[.......],'description_content_type':?'text/markdown','docs_url':?None,'download_url':?'','downloads':?{.........},'home_page':?'https://github.com/pypa/sampleproject','keywords':?'sample?setuptools?development','license':?'','maintainer':?'','maintainer_email':?'','name':?'sampleproject','package_url':?'https://pypi.org/project/sampleproject/','platform':?'','project_url':?'https://pypi.org/project/sampleproject/','project_urls':?..........,'requires_dist':?[..........],'requires_python':?'>=3.5,?<4','summary':?'A?sample?Python?project','version':?'2.0.0','yanked':?False,'yanked_reason':?None}statistics
Python當(dāng)中的statistics模塊提供了更加完善的數(shù)據(jù)統(tǒng)計(jì)操作,例如對(duì)中位數(shù)的計(jì)算就提供了median_low()、median_high()兩種方法,分別來(lái)計(jì)算數(shù)據(jù)的低中位數(shù)(偶數(shù)個(gè)樣本時(shí)取中間兩個(gè)數(shù)的較小者),代碼如下
statistics.median_low([1,3,5,7])output
3和高中位數(shù)(偶數(shù)個(gè)樣本時(shí)取中間兩個(gè)數(shù)的較大者),代碼如下
statistics.median_high([1,3,5,7])output
5除此之外,例如平均數(shù)、眾數(shù)、標(biāo)準(zhǔn)差、方差等等都能夠計(jì)算,例如
x1?=?statistics.mode([1,1,2,3,4,3,3,3,3]) print(x1)x2?=?statistics.mode(["a","b","c","d","d","a","a",]) print(x2)output
3 acalendar
Python當(dāng)中的日歷模塊提供了對(duì)日期的一系列操作方法,并且可以生成日歷,代碼如下
import?calendar print(calendar.calendar(2022))output
2022January???????????????????February???????????????????March Mo?Tu?We?Th?Fr?Sa?Su??????Mo?Tu?We?Th?Fr?Sa?Su??????Mo?Tu?We?Th?Fr?Sa?Su1??2??????????1??2??3??4??5??6??????????1??2??3??4??5??63??4??5??6??7??8??9???????7??8??9?10?11?12?13???????7??8??9?10?11?12?13 10?11?12?13?14?15?16??????14?15?16?17?18?19?20??????14?15?16?17?18?19?20 17?18?19?20?21?22?23??????21?22?23?24?25?26?27??????21?22?23?24?25?26?27 24?25?26?27?28?29?30??????28????????????????????????28?29?30?31 31April??????????????????????May???????????????????????June Mo?Tu?We?Th?Fr?Sa?Su??????Mo?Tu?We?Th?Fr?Sa?Su??????Mo?Tu?We?Th?Fr?Sa?Su1??2??3?????????????????????????1?????????????1??2??3??4??54??5??6??7??8??9?10???????2??3??4??5??6??7??8???????6??7??8??9?10?11?12 11?12?13?14?15?16?17???????9?10?11?12?13?14?15??????13?14?15?16?17?18?19 18?19?20?21?22?23?24??????16?17?18?19?20?21?22??????20?21?22?23?24?25?26 25?26?27?28?29?30?????????23?24?25?26?27?28?29??????27?28?29?3030?31 ......當(dāng)然我們也可以打印出某一個(gè)月份的日歷,代碼如下
import?calendar print(calendar.month(2022,?3))output
March?2022 Mo?Tu?We?Th?Fr?Sa?Su1??2??3??4??5??67??8??9?10?11?12?13 14?15?16?17?18?19?20 21?22?23?24?25?26?27 28?29?30?31calendar.isleap(year)是閏年則返回True,否則返回False,例如
import?calendar print(calendar.isleap(2022))output
False往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載(圖文+視頻)機(jī)器學(xué)習(xí)入門系列下載中國(guó)大學(xué)慕課《機(jī)器學(xué)習(xí)》(黃海廣主講)機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)交流qq群955171419,加入微信群請(qǐng)掃碼:總結(jié)
以上是生活随笔為你收集整理的【Python】分享几个好用到爆的Python内置模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【深度学习】基于区域生长的图像分割算法!
- 下一篇: python中属性是什么意思啊_pyth