Python Tutorial(十):浏览标准库(一)
10.1 操作系統(tǒng)接口
os模塊提供很多函數(shù)用于和操作系統(tǒng)的交互:
確定使用import os風(fēng)格而不是from os import *。這將避免os.open()被內(nèi)建的open()函數(shù)遮住,它的操作截然不同。
內(nèi)建的函數(shù)dir()和help()作為交互助手對于大的模塊像os是非常有用的:
對于日常的文件和目錄管理任務(wù),shutil模塊提供了一個(gè)更高級別的接口,使用起來很簡單:
10.2 文件通配符
glob模塊提供了一個(gè)函數(shù)可以從目錄通配符搜索獲得文件列表:
10.3 命令行參數(shù)
通常的功能腳本經(jīng)常需要處理命令行參數(shù)。這些參數(shù)存儲(chǔ)在sys模塊的argv屬性里,是一個(gè)列表。例如,下面是從命令行運(yùn)行python demo.py one two three的輸出結(jié)果:
getopt模塊處理sys.argv,使用Unix的getopt()函數(shù)的約定。更加強(qiáng)大和靈活的命令行處理由argparse模塊提供。
10.4 錯(cuò)誤輸出重定向和程序終止
sys模塊也有屬性stdin,stdout,stderr。后一個(gè)對于發(fā)出警告和錯(cuò)誤消息并使它們可見非常有用,甚至當(dāng)stdout已經(jīng)被重定向:
最直接的方式來終止一個(gè)腳本是使用sys.exit()。
10.5 字符串模式匹配
re模塊提供正則表達(dá)式用于高級的字符串處理。對于復(fù)雜的匹配和操作,正則表達(dá)式提供簡潔,優(yōu)化的解決方案:
當(dāng)只需要簡單的功能是,優(yōu)先使用字符串方法,因?yàn)樗鼈円子陂喿x和調(diào)試:
10.6 數(shù)學(xué)
math模塊訪問底層的C語言庫用于浮點(diǎn)數(shù)學(xué):
random模塊提供工具用于隨機(jī)數(shù)選擇:
SciPy項(xiàng)目有許多其它的模塊用于數(shù)字運(yùn)算。
10.7 因特網(wǎng)訪問
有許多模塊用于訪問因特網(wǎng)和處理因特網(wǎng)協(xié)議。最簡單的兩個(gè)是urllib.request用于從URL獲取數(shù)據(jù)和smtplib用于發(fā)送郵件:
10.8 日期和時(shí)間
datetime模塊提供一些類用于以簡單和復(fù)雜的方式操作日期和時(shí)間。日期和時(shí)間的算術(shù)被支持,實(shí)現(xiàn)的焦點(diǎn)是關(guān)于為輸出格式化和操作的有效數(shù)字抽取。模塊也支持時(shí)區(qū)意識(shí)的對象:
10.9 數(shù)據(jù)壓縮
普通的數(shù)據(jù)存檔和壓縮格式直接被模塊支持的有,zlib,gzip,bz2,lzma,zipfile和tarfile:
10.10 性能測量
一些Python用戶對同樣的問題不同的解決方法的相對表現(xiàn)性能產(chǎn)生了興趣。Python提供了一個(gè)測量工具可以立即來回答這些問題。
例如,嘗試使用元組打包和解包特性而不是傳統(tǒng)的方法來交換參數(shù)。timeit模塊快速地演示一個(gè)謙虛性能好處:
相對于timeit的很好的粒度級別,profile和pstats模塊提供工具用于在大塊的代碼中標(biāo)示時(shí)間關(guān)鍵部分。
10.11 質(zhì)量控制
開發(fā)出高質(zhì)量軟件的一個(gè)方法是在開發(fā)期間為每一個(gè)函數(shù)寫測試,并且在開發(fā)過程中經(jīng)常運(yùn)行這些測試。
doctest模塊提供一個(gè)工具用于掃描一個(gè)模塊和驗(yàn)證嵌入在一個(gè)程序的文檔字符串里面的測試。測試構(gòu)造簡單的就是剪切和粘貼一個(gè)典型的調(diào)用和它的結(jié)果到文檔字符串里面。這通過給用戶提供示例改進(jìn)了文檔,并且它允許doctest模塊來確認(rèn)代碼對于文檔來說仍然是真的:
unittest模塊并不是和doctest模塊一樣容易,但是,它允許一個(gè)更加綜合的測試集合在一個(gè)分離的文件中被維護(hù):
10.12 包含的框架
Python有一個(gè)“框架包含”哲學(xué)。通過它的大部分包的有經(jīng)驗(yàn)和堅(jiān)定的能力可以更好的看到這一點(diǎn)。例如:
- xmlrpc.client和xmlrpc.server模塊使遠(yuǎn)程過程調(diào)用實(shí)現(xiàn)到一個(gè)幾乎不重要的任務(wù)中。盡管模塊名稱,沒有直接的知識(shí)或處理必須的XML。
- email包是一個(gè)庫用于管理email消息,包括MIME和其它基于RFC2822的消息文檔。不像smtplib和poplib,它們實(shí)際發(fā)送和接收消息,email包有一個(gè)完整的工具集用于構(gòu)建或解碼復(fù)雜的消息結(jié)構(gòu)(包括附件)和實(shí)現(xiàn)因特網(wǎng)編碼和頭協(xié)議。
- xml.dom和xml.sax包對解析這種流行的數(shù)據(jù)交互格式提供堅(jiān)強(qiáng)的支持。同樣地,csv模塊支持以普通數(shù)據(jù)庫格式的直接讀和寫。總之,這些模塊和包極大的簡化了在Python應(yīng)用和其它工具之間的數(shù)據(jù)交互。
- 國際化通過一些模塊被支持,包括gettext,locale和codecs包。
本文是對官方網(wǎng)站內(nèi)容的翻譯,原文地址:http://docs.python.org/3/tutorial/stdlib.html
轉(zhuǎn)載于:https://www.cnblogs.com/lixinjie/archive/2013/03/04/python-stdlib-1.html
總結(jié)
以上是生活随笔為你收集整理的Python Tutorial(十):浏览标准库(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无精症Y染色体微缺失
- 下一篇: ABAP性能实例七例