出版時(shí)間:2012-6-15 出版社:機(jī)械工業(yè)出版社華章公司 作者:Doug Hellmann 頁(yè)數(shù):1016 譯者:劉熾
Tag標(biāo)簽:無(wú)
前言
序 今天是2010年的感恩節(jié)。不論人們是否身在美國(guó),在這個(gè)節(jié)日里,大家都一邊品嘗豐盛的食物,一邊欣賞橄欖球比賽,有些人可能會(huì)出門逛逛?! ?duì)我(以及其他很多人)來(lái)說(shuō),會(huì)借此機(jī)會(huì)回顧一下過(guò)去的歲月,想想那些讓我們的生活充滿色彩的人和事,向他們致以感謝。當(dāng)然,我們每天都該這么做,不過(guò)專門有一天來(lái)表達(dá)謝意有時(shí)會(huì)讓我們想得更深遠(yuǎn)一些?! ‖F(xiàn)在我坐在這里為本書寫序,非常感謝能有機(jī)會(huì)做這件事,不過(guò)我想到的不只是本書的內(nèi)容,也不只是作者本人(一個(gè)無(wú)比熱情的社區(qū)成員),我所想的是這個(gè)主題本身—Python,具體來(lái)講,還有它的標(biāo)準(zhǔn)庫(kù)?! ‘?dāng)前發(fā)布的每版Python都包含數(shù)百個(gè)模塊,它們是多年來(lái)多位開發(fā)人員針對(duì)多個(gè)主題和多個(gè)任務(wù)共同完成的。這些模塊涵蓋一切,從發(fā)送和接收Email,到GUI開發(fā),再到內(nèi)置的HTTP服務(wù)器都一應(yīng)俱全。就其本身而言,標(biāo)準(zhǔn)庫(kù)的開發(fā)和維護(hù)是一項(xiàng)極其龐大的工作。如果沒(méi)有多年來(lái)一直維護(hù)它的人們,沒(méi)有數(shù)以千計(jì)的人提交補(bǔ)丁、文檔和提供反饋,它絕不會(huì)成為今天的模樣。 這是一個(gè)驚人的成就,在Python日益普及的今天(不論是作為語(yǔ)言還是一種生態(tài)系統(tǒng)),標(biāo)準(zhǔn)庫(kù)已經(jīng)成為其中不可或缺的重要組成部分。如果沒(méi)有標(biāo)準(zhǔn)庫(kù),沒(méi)有核心團(tuán)隊(duì)和其他人員的“內(nèi)含動(dòng)力”(batteries included)口號(hào),Python絕對(duì)不可能走這么遠(yuǎn)。它已經(jīng)被成千上萬(wàn)的人和公司下載,并已安裝在數(shù)百萬(wàn)服務(wù)器、臺(tái)式機(jī)和其他設(shè)備上?! 〖词箾](méi)有標(biāo)準(zhǔn)庫(kù),Python仍是一種很不錯(cuò)的語(yǔ)言,在教學(xué)、學(xué)習(xí)和可讀性方面有扎實(shí)的基礎(chǔ)?;谶@些優(yōu)點(diǎn),它本身也能發(fā)展得足夠好。不過(guò)標(biāo)準(zhǔn)庫(kù)把它從一種有趣的體驗(yàn)變成為一個(gè)強(qiáng)大而有效的工具?! ∶恳惶?,全世界的開發(fā)人員都在構(gòu)建工具和完整的應(yīng)用,他們所基于的只是核心語(yǔ)言和標(biāo)準(zhǔn)庫(kù)。你不僅要能夠明確概念,描述汽車是什么(語(yǔ)言),還要得到足夠的部件和工具來(lái)自行組裝一輛基本的汽車。它可能并不完善,不過(guò)可以使你從無(wú)到有,這將是一個(gè)很好的獎(jiǎng)勵(lì),會(huì)賦予你巨大的動(dòng)力。我曾反復(fù)對(duì)那些驕傲地看著我的人說(shuō):“看看我構(gòu)建的應(yīng)用,除了Python提供的,其他的工具通通都沒(méi)有用到!” 不過(guò),標(biāo)準(zhǔn)庫(kù)也不是完美無(wú)缺的,它也有自己的缺陷。由于標(biāo)準(zhǔn)庫(kù)的規(guī)模、廣度和它的“年齡”,毫無(wú)疑問(wèn)有些模塊有不同層次的質(zhì)量、API簡(jiǎn)潔性和覆蓋性。有些模塊存在“特性蔓延”的問(wèn)題,或者無(wú)法跟進(jìn)其覆蓋領(lǐng)域中的最新進(jìn)展。通過(guò)眾多不計(jì)酬勞的志愿者的幫助和辛勤工作,Python還在繼續(xù)發(fā)展、壯大和改進(jìn)。 不過(guò),有些人對(duì)Python還有爭(zhēng)議,不僅由于它的缺點(diǎn),而且因?yàn)闃?biāo)準(zhǔn)庫(kù)并不一定構(gòu)成其模塊涵蓋領(lǐng)域中“最頂尖的”解決方案(畢竟,“最佳”是一個(gè)不斷改變和調(diào)整的目標(biāo)),因而認(rèn)為應(yīng)當(dāng)將它完全舍棄,盡管它還在不斷改善。這些人遺漏了一個(gè)事實(shí):標(biāo)準(zhǔn)庫(kù)不僅是促使Python不斷成功的一個(gè)重要組成部分,而且盡管存在瑕疵,它還是一個(gè)絕妙的資源?! 〔贿^(guò)我有意忽略了一個(gè)巨大的領(lǐng)域:文檔。標(biāo)準(zhǔn)庫(kù)的文檔很不錯(cuò),還在繼續(xù)改進(jìn)和發(fā)展。由于標(biāo)準(zhǔn)庫(kù)的龐大規(guī)模和廣度,相應(yīng)的文檔規(guī)模也很驚人。在數(shù)以千計(jì)的開發(fā)人員和用戶的努力下,我們有成百上千頁(yè)文檔,實(shí)在讓人佩服。每天都有數(shù)萬(wàn)人在使用這些文檔創(chuàng)建應(yīng)用—可能簡(jiǎn)單到只是一頁(yè)的腳本,也可能很復(fù)雜,比如控制大型機(jī)械手的軟件?! ≌怯捎谖臋n,我們才會(huì)看到本書。所有好的文檔和代碼都有一個(gè)起點(diǎn)—關(guān)于目標(biāo)“是什么”以及“將是什么”要有一個(gè)核心概念。從這個(gè)內(nèi)核出發(fā),才有了角色(API)和故事情節(jié)(模塊)。談到代碼,有時(shí)代碼會(huì)從一個(gè)簡(jiǎn)單的想法開始:“我想解析一個(gè)字符串,查找一個(gè)日期。”不過(guò)等結(jié)束時(shí),你可能已經(jīng)查看了數(shù)百個(gè)單元測(cè)試、函數(shù)以及你編寫的其他代碼,你會(huì)坐下來(lái),發(fā)現(xiàn)自己構(gòu)建的東西遠(yuǎn)遠(yuǎn)超出了原先的設(shè)想。文檔也是如此,特別是代碼文檔。 在我看來(lái),代碼文檔中最重要的部分就屬于這種例子。要寫有關(guān)一個(gè)API中某一部分的描述,你可能會(huì)寫上幾本書,可以用華麗的文字和經(jīng)過(guò)深思熟慮的用例來(lái)描述松耦合的接口。不過(guò),如果第一次查看這個(gè)描述的用戶無(wú)法將這些華麗的文字、仔細(xì)考量的用例和API簽名結(jié)合在一起,構(gòu)建出有意義的應(yīng)用并解決他們的問(wèn)題,這一切就完全是徒勞?! ∪藗兘⒅匾B接所用的網(wǎng)關(guān)也屬于這種例子,這些邏輯會(huì)從一個(gè)抽象概念跳轉(zhuǎn)到具體的事物。“了解”思想和API是一回事;知道它如何使用則是另外一回事。如果你不僅想要學(xué)到東西,還希望改善現(xiàn)狀,這會(huì)很有幫助?! ∵@就把我們重新引回Python。本書作者Doug Hellmann在2007年創(chuàng)建了一個(gè)名為“Python Module of the Week”的博客。在這個(gè)博客中,他全面研究了標(biāo)準(zhǔn)庫(kù)的眾多模塊,采用一種“示例為先”的方式介紹各個(gè)模塊如何工作以及為什么。從讀到它的第一天起,它就成為我除了核心Python文檔之外的又一個(gè)必訪之地。他的作品已經(jīng)成為我以及Python社區(qū)其他人不可缺少的必備資源。 Doug的文章填補(bǔ)了當(dāng)前我所看到的Python文檔的一個(gè)重大空白:對(duì)例子的迫切需求。用一種有效而簡(jiǎn)單的方式展示如何做以及為什么這么做,這絕非易事。我們已經(jīng)看到,這也是一項(xiàng)很重要、很有價(jià)值的工作,對(duì)人們每一天的工作都有幫助。人們頻繁地給我發(fā)郵件,告訴我:“你看過(guò)Doug的這個(gè)帖子嗎?實(shí)在太棒了!”或者“為什么這個(gè)不能放在核心文檔里呢?它能幫助我了解到底是怎么做的!” 當(dāng)我聽(tīng)說(shuō)Doug準(zhǔn)備花些時(shí)間進(jìn)一步完善他現(xiàn)有的工作,把它變成一本書,讓我能把它放在桌子上反復(fù)翻閱,以備急用,我真是太興奮了。Doug是一位非凡的技術(shù)作者,而且能敏銳地捕捉到細(xì)節(jié)。有一整本書專門講解實(shí)際例子,介紹標(biāo)準(zhǔn)庫(kù)中一百多個(gè)模塊是如何工作的,而且是他來(lái)寫這本書,實(shí)在讓我欣喜若狂。 所以,我要感謝Python,感謝標(biāo)準(zhǔn)庫(kù)(包括它的瑕疵),感謝我擁有的這個(gè)活力充沛有時(shí)也存在問(wèn)題的龐大Python社區(qū)。我要感謝核心開發(fā)小組的辛勤工作,包括過(guò)去、現(xiàn)在,還有將來(lái)。我還要感謝這么多社區(qū)成員提供的資源、投入的時(shí)間和做出的努力,其中Doug Hellmann更是卓越的代表,正是這些讓這個(gè)社區(qū)和生態(tài)系統(tǒng)如此生機(jī)勃勃?! ∽詈螅乙兄x本書。繼續(xù)向它的作者表示敬意,這本書會(huì)在未來(lái)幾年得到充分利用?! esse Noller Python核心開發(fā)人員 PSF Board成員 Nasuni公司首席工程師
內(nèi)容概要
本書由資深Python專家親自執(zhí)筆,Python語(yǔ)言的核心開發(fā)人員作序推薦,權(quán)威性毋庸置疑。
對(duì)于程序員而言,標(biāo)準(zhǔn)庫(kù)與語(yǔ)言本身同樣重要,它好比一個(gè)百寶箱,能為各種常見(jiàn)的任務(wù)提供完美的解決方案,所以本書是所有Python程序員都必備的工具書!本書以案例驅(qū)動(dòng)的方式講解了標(biāo)準(zhǔn)庫(kù)中一百多個(gè)模塊的使用方法(如何工作)和工作原理(為什么要這樣工作),比標(biāo)準(zhǔn)庫(kù)的官方文檔更容易理解(一個(gè)簡(jiǎn)單的示例比一份手冊(cè)文檔更有幫助),為Python程序員熟練掌握和使用這些模塊提供了絕佳指導(dǎo)。
全書一共19章,系統(tǒng)而全面地對(duì)Python標(biāo)準(zhǔn)庫(kù)中的一百多個(gè)模塊進(jìn)行了生動(dòng)的講解。這些模塊主要包括:文本處理工具模塊、與數(shù)據(jù)結(jié)構(gòu)相關(guān)的模塊、與算法有關(guān)的模塊、管理日期和時(shí)間值的模塊、用于數(shù)學(xué)計(jì)算的模塊、管理文件系統(tǒng)的模塊、用于數(shù)據(jù)存儲(chǔ)與交換的模塊、用于數(shù)據(jù)壓縮與歸檔的模塊、用于加密的模塊、...
(展開全部) 本書由資深Python專家親自執(zhí)筆,Python語(yǔ)言的核心開發(fā)人員作序推薦,權(quán)威性毋庸置疑。
對(duì)于程序員而言,標(biāo)準(zhǔn)庫(kù)與語(yǔ)言本身同樣重要,它好比一個(gè)百寶箱,能為各種常見(jiàn)的任務(wù)提供完美的解決方案,所以本書是所有Python程序員都必備的工具書!本書以案例驅(qū)動(dòng)的方式講解了標(biāo)準(zhǔn)庫(kù)中一百多個(gè)模塊的使用方法(如何工作)和工作原理(為什么要這樣工作),比標(biāo)準(zhǔn)庫(kù)的官方文檔更容易理解(一個(gè)簡(jiǎn)單的示例比一份手冊(cè)文檔更有幫助),為Python程序員熟練掌握和使用這些模塊提供了絕佳指導(dǎo)。
全書一共19章,系統(tǒng)而全面地對(duì)Python標(biāo)準(zhǔn)庫(kù)中的一百多個(gè)模塊進(jìn)行了生動(dòng)的講解。這些模塊主要包括:文本處理工具模塊、與數(shù)據(jù)結(jié)構(gòu)相關(guān)的模塊、與算法有關(guān)的模塊、管理日期和時(shí)間值的模塊、用于數(shù)學(xué)計(jì)算的模塊、管理文件系統(tǒng)的模塊、用于數(shù)據(jù)存儲(chǔ)與交換的模塊、用于數(shù)據(jù)壓縮與歸檔的模塊、用于加密的模塊、與進(jìn)程和線程相關(guān)的模塊、與網(wǎng)絡(luò)通信和Email相關(guān)的模塊、構(gòu)建模塊、支持處理多種自然語(yǔ)言和文化設(shè)置的模塊、開發(fā)工具模塊、與運(yùn)行時(shí)特性相關(guān)的模塊,等等?! ?/pre>作者簡(jiǎn)介
Doug Hellmann目前是Racemi公司的一位高級(jí)開發(fā)人員,也是Python
Software
Foundation的信息交流主管。從1.4版開始他就一直在做Python編程,曾在大量UNIX和非UNIX平臺(tái)上參與項(xiàng)目開發(fā),涉及領(lǐng)域包括地圖、醫(yī)療新聞播報(bào)、金融和數(shù)據(jù)中心自動(dòng)化。為《Python
Magazine》做了一年普通專欄作家后,他在2008—2009年成為這家雜志的主編。自2007年以來(lái),Doug在他的博客上發(fā)表了頗受關(guān)注的“Python
Module of the Week”系列。他居住在喬治亞州的Athens。書籍目錄
譯者序
序
前言
第1章 文本
1.1 string—文本常量和模板
1.1.1 函數(shù)
1.1.2 模板
1.1.3 高級(jí)模板
1.2 textwrap—格式化文本段落
1.2.1 示例數(shù)據(jù)
1.2.2 填充段落
1.2.3 去除現(xiàn)有縮進(jìn)
1.2.4 結(jié)合dedent和fill
1.2.5 懸掛縮進(jìn)
1.3 re—正則表達(dá)式
1.3.1 查找文本中的模式
1.3.2 編譯表達(dá)式
1.3.3 多重匹配
1.3.4 模式語(yǔ)法
1.3.5 限制搜索
1.3.6 用組解析匹配
1.3.7 搜索選項(xiàng)
1.3.8 前向或后向
1.3.9 自引用表達(dá)式
1.3.10 用模式修改字符串
1.3.11 利用模式拆分
1.4 difflib—比較序列
1.4.1 比較文本體
1.4.2 無(wú)用數(shù)據(jù)
1.4.3 比較任意類型
第2章 數(shù)據(jù)結(jié)構(gòu)
2.1 collections—容器數(shù)據(jù)類型
2.1.1 Counter
2.1.2 defaultdict
2.1.3 deque
2.1.4 namedtuple
2.1.5 OrderedDict
2.2 array—固定類型數(shù)據(jù)序列
2.2.1 初始化
2.2.2 處理數(shù)組
2.2.3 數(shù)組與文件
2.2.4 候選字節(jié)順序
2.3 heapq—堆排序算法
2.3.1 示例數(shù)據(jù)
2.3.2 創(chuàng)建堆
2.3.3 訪問(wèn)堆的內(nèi)容
2.3.4 堆的數(shù)據(jù)極值
2.4 bisect—維護(hù)有序列表
2.4.1 有序插入
2.4.2 處理重復(fù)
2.5 Queue—線程安全的FIFO實(shí)現(xiàn)
2.5.1 基本FIFO隊(duì)列
2.5.2 LIFO隊(duì)列
2.5.3 優(yōu)先隊(duì)列
2.5.4 構(gòu)建一個(gè)多線程播客客戶程序
2.6 struct—二進(jìn)制數(shù)據(jù)結(jié)構(gòu)
2.6.1 函數(shù)與Struct類
2.6.2 打包和解包
2.6.3 字節(jié)序
2.6.4 緩沖區(qū)
2.7 weakref—對(duì)象的非永久引用
2.7.1 引用
2.7.2 引用回調(diào)
2.7.3 代理
2.7.4 循環(huán)引用
2.7.5 緩存對(duì)象
2.8 copy—復(fù)制對(duì)象
2.8.1 淺副本
2.8.2 深副本
2.8.3 定制復(fù)制行為
2.8.4 深副本中的遞歸
2.9 pprint—美觀打印數(shù)據(jù)結(jié)構(gòu)
2.9.1 打印
2.9.2 格式化
2.9.3 任意類
2.9.4 遞歸
2.9.5 限制嵌套輸出
2.9.6 控制輸出寬度
第3章 算法
3.1 functools—管理函數(shù)的工具
3.1.1 修飾符
3.1.2 比較
3.2 itertools—迭代器函數(shù)
3.2.1 合并和分解迭代器
3.2.2 轉(zhuǎn)換輸入
3.2.3 生成新值
3.2.4 過(guò)濾
3.2.5 數(shù)據(jù)分組
3.3 operator—內(nèi)置操作符的函數(shù)接口
3.3.1 邏輯操作
3.3.2 比較操作符
3.3.3 算術(shù)操作符
3.3.4 序列操作符
3.3.5 原地操作符
3.3.6 屬性和元素“獲取方法”
3.3.7 結(jié)合操作符和定制類
3.3.8 類型檢查
3.4 contextlib—上下文管理器工具
3.4.1 上下文管理器API
3.4.2 從生成器到上下文管理器
3.4.3 嵌套上下文
3.4.4 關(guān)閉打開的句柄
第4章 日期和時(shí)間
4.1 time—時(shí)鐘時(shí)間
4.1.1 壁掛鐘時(shí)間
4.1.2 處理器時(shí)鐘時(shí)間
4.1.3 時(shí)間組成
4.1.4 處理時(shí)區(qū)
4.1.5 解析和格式化時(shí)間
4.2 datetime—日期和時(shí)間值管理
4.2.1 時(shí)間
4.2.2 日期
4.2.3 timedelta
4.2.4 日期算術(shù)運(yùn)算
4.2.5 比較值
4.2.6 結(jié)合日期和時(shí)間
4.2.7 格式化和解析
4.2.8 時(shí)區(qū)
4.3 calendar—處理日期
4.3.1 格式化示例
4.3.2 計(jì)算日期
第5章 數(shù)學(xué)計(jì)算
5.1 decimal—定點(diǎn)數(shù)和浮點(diǎn)數(shù)的數(shù)學(xué)運(yùn)算
5.1.1 Decimal
5.1.2 算術(shù)運(yùn)算
5.1.3 特殊值
5.1.4 上下文
5.2 fractions—有理數(shù)
5.2.1 創(chuàng)建 Fraction實(shí)例
5.2.2 算術(shù)運(yùn)算
5.2.3 近似值
5.3 random—偽隨機(jī)數(shù)生成器
5.3.1 生成隨機(jī)數(shù)
5.3.2 指定種子
5.3.3 保存狀態(tài)
5.3.4 隨機(jī)整數(shù)
5.3.5 選擇隨機(jī)元素
5.3.6 排列
5.3.7 采樣
5.3.8 多個(gè)并發(fā)生成器
5.3.9 SystemRandom
5.3.10 非均勻分布
5.4 math—數(shù)學(xué)函數(shù)
5.4.1 特殊常量
5.4.2 測(cè)試異常值
5.4.3 轉(zhuǎn)換為整數(shù)
5.4.4 其他表示
5.4.5 正號(hào)和負(fù)號(hào)
5.4.6 常用計(jì)算
5.4.7 指數(shù)和對(duì)數(shù)
5.4.8 角
5.4.9 三角函數(shù)
5.4.10 雙曲函數(shù)
5.4.11 特殊函數(shù)
第6章 文件系統(tǒng)
6.1 os.path—平臺(tái)獨(dú)立的文件名管理
6.1.1 解析路徑
6.1.2 建立路徑
6.1.3 規(guī)范化路徑
6.1.4 文件時(shí)間
6.1.5 測(cè)試文件
6.1.6 遍歷一個(gè)目錄樹
6.2 glob—文件名模式匹配
6.2.1 示例數(shù)據(jù)
6.2.2 通配符
6.2.3 單字符通配符
6.2.4 字符區(qū)間
6.3 linecache—高效讀取文本文件
6.3.1 測(cè)試數(shù)據(jù)
6.3.2 讀取特定行
6.3.3 處理空行
6.3.4 錯(cuò)誤處理
6.3.5 讀取Python源文件
6.4 tempfile—臨時(shí)文件系統(tǒng)對(duì)象
6.4.1 臨時(shí)文件
6.4.2 命名文件
6.4.3 臨時(shí)目錄
6.4.4 預(yù)測(cè)名
6.4.5 臨時(shí)文件位置
6.5 shutil—高級(jí)文件操作
6.5.1 復(fù)制文件
6.5.2 復(fù)制文件元數(shù)據(jù)
6.5.3 處理目錄樹
6.6 mmap—內(nèi)存映射文件
6.6.1 讀文件
6.6.2 寫文件
6.6.3 正則表達(dá)式
6.7 codecs—字符串編碼和解碼
6.7.1 Unicode入門
6.7.2 處理文件
6.7.3 字節(jié)序
6.7.4 錯(cuò)誤處理
6.7.5 標(biāo)準(zhǔn)輸入和輸出流
6.7.6 編碼轉(zhuǎn)換
6.7.7 非Unicode編碼
6.7.8 增量編碼
6.7.9 Unicode數(shù)據(jù)和網(wǎng)絡(luò)通信
6.7.10 定義定制編碼
6.8 StringIO—提供類文件API的文本緩沖區(qū)
6.9 fnmatch—UNIX式glob模式匹配
6.9.1 簡(jiǎn)單匹配
6.9.2 過(guò)濾
6.9.3 轉(zhuǎn)換模式
6.10 dircache—緩存目錄列表
6.10.1 列出目錄內(nèi)容
6.10.2 標(biāo)注列表
6.11 filecmp—比較文件
6.11.1 示例數(shù)據(jù)
6.11.2 比較文件
6.11.3 比較目錄
6.11.4 程序中使用差異
第7章 數(shù)據(jù)持久存儲(chǔ)與交換
7.1 pickle—對(duì)象串行化
7.1.1 導(dǎo)入
7.1.2 編碼和解碼字符串?dāng)?shù)據(jù)
7.1.3 處理流
7.1.4 重構(gòu)對(duì)象的問(wèn)題
7.1.5 不可pickle的對(duì)象
7.1.6 循環(huán)引用
7.2 shelve—對(duì)象持久存儲(chǔ)
7.2.1 創(chuàng)建一個(gè)新shelf
7.2.2 寫回
7.2.3 特定shelf類型
7.3 anydbm—DBM數(shù)據(jù)庫(kù)
7.3.1 數(shù)據(jù)庫(kù)類型
7.3.2 創(chuàng)建一個(gè)新數(shù)據(jù)庫(kù)
7.3.3 打開一個(gè)現(xiàn)有數(shù)據(jù)庫(kù)
7.3.4 錯(cuò)誤情況
7.4 whichdb—識(shí)別DBM數(shù)據(jù)庫(kù)格式
7.5 sqlite3—嵌入式關(guān)系數(shù)據(jù)庫(kù)
7.5.1 創(chuàng)建數(shù)據(jù)庫(kù)
7.5.2 獲取數(shù)據(jù)
7.5.3 查詢?cè)獢?shù)據(jù)
7.5.4 行對(duì)象
7.5.5 查詢中使用變量
7.5.6 批量加載
7.5.7 定義新列類型
7.5.8 確定列類型
7.5.9 事務(wù)
7.5.10 隔離級(jí)別
7.5.11 內(nèi)存中數(shù)據(jù)庫(kù)
7.5.12 導(dǎo)出數(shù)據(jù)庫(kù)內(nèi)容
7.5.13 SQL中使用Python函數(shù)
7.5.14 定制聚集
7.5.15 定制排序
7.5.16 線程和連接共享
7.5.17 限制對(duì)數(shù)據(jù)的訪問(wèn)
7.6 xml.etree.ElementTree—XML操縱API
7.6.1 解析XML文檔
7.6.2 遍歷解析樹
7.6.3 查找文檔中的節(jié)點(diǎn)
7.6.4 解析節(jié)點(diǎn)屬性
7.6.5 解析時(shí)監(jiān)視事件
7.6.6 創(chuàng)建一個(gè)定制樹構(gòu)造器
7.6.7 解析串
7.6.8 用元素節(jié)點(diǎn)構(gòu)造文檔
7.6.9 美觀打印XML
7.6.10 設(shè)置元素屬性
7.6.11 由節(jié)點(diǎn)列表構(gòu)造樹
7.6.12 將XML串行化至一個(gè)流
7.7 csv—逗號(hào)分隔值文件
7.7.1 讀文件
7.7.2 寫文件
7.7.3 方言
7.7.4 使用字段名
第8章 數(shù)據(jù)壓縮與歸檔
8.1 zlib—GNU zlib壓縮
8.1.1 處理內(nèi)存中數(shù)據(jù)
8.1.2 增量壓縮與解壓縮
8.1.3 混合內(nèi)容流
8.1.4 校驗(yàn)和
8.1.5 壓縮網(wǎng)絡(luò)數(shù)據(jù)
8.2 gzip—讀寫GNU Zip文件
8.2.1 寫壓縮文件
8.2.2 讀壓縮數(shù)據(jù)
8.2.3 處理流
8.3 bz2—bzip2壓縮
8.3.1 內(nèi)存中一次性操作
8.3.2 增量壓縮和解壓縮
8.3.3 混合內(nèi)容流
8.3.4 寫壓縮文件
8.3.5 讀壓縮文件
8.3.6 壓縮網(wǎng)絡(luò)數(shù)據(jù)
8.4 tarfile—Tar歸檔訪問(wèn)
8.4.1 測(cè)試Tar文件
8.4.2 從歸檔文件讀取元數(shù)據(jù)
8.4.3 從歸檔抽取文件
8.4.4 創(chuàng)建新歸檔
8.4.5 使用候選歸檔成員名
8.4.6 從非文件源寫數(shù)據(jù)
8.4.7 追加到歸檔
8.4.8 處理壓縮歸檔
8.5 zipfile—ZIP歸檔訪問(wèn)
8.5.1 測(cè)試ZIP文件
8.5.2 從歸檔讀取元數(shù)據(jù)
8.5.3 從歸檔抽取歸檔文件
8.5.4 創(chuàng)建新歸檔
8.5.5 使用候選歸檔成員名
8.5.6 從非文件源寫數(shù)據(jù)
8.5.7 利用ZipInfo實(shí)例寫
8.5.8 追加到文件
8.5.9 Python ZIP歸檔
8.5.10 限制
第9章 加密
9.1 hashlib—密碼散列
9.1.1 示例數(shù)據(jù)
9.1.2 MD5示例
9.1.3 SHA1示例
9.1.4 按名創(chuàng)建散列
9.1.5 增量更新
9.2 hmac—密碼消息簽名與驗(yàn)證
9.2.1 消息簽名
9.2.2 SHA與MD
9.2.3 二進(jìn)制摘要
9.2.4 消息簽名的應(yīng)用
第10章 進(jìn)程與線程
10.1 subprocess—?jiǎng)?chuàng)建附加進(jìn)程
10.1.1 運(yùn)行外部命令
10.1.2 直接處理管道
10.1.3 連接管道段
10.1.4 與其他命令交互
10.1.5 進(jìn)程間傳遞信號(hào)
10.2 signal—異步系統(tǒng)事件
10.2.1 接收信號(hào)
10.2.2 獲取注冊(cè)的處理程序
10.2.3 發(fā)送信號(hào)
10.2.4 鬧鈴
10.2.5 忽略信號(hào)
10.2.6 信號(hào)和線程
10.3 threading—管理并發(fā)操作
10.3.1 Thread對(duì)象
10.3.2 確定當(dāng)前線程
10.3.3 守護(hù)與非守護(hù)線程
10.3.4 列舉所有線程
10.3.5 派生線程
10.3.6 定時(shí)器線程
10.3.7 線程間傳送信號(hào)
10.3.8 控制資源訪問(wèn)
10.3.9 同步線程
10.3.10 限制資源的并發(fā)訪問(wèn)
10.3.11 線程特定數(shù)據(jù)
10.4 multiprocessing—像線程一樣管理進(jìn)程
10.4.1 multiprocessing基礎(chǔ)
10.4.2 可導(dǎo)入的目標(biāo)函數(shù)
10.4.3 確定當(dāng)前進(jìn)程
10.4.4 守護(hù)進(jìn)程
10.4.5 等待進(jìn)程
10.4.6 終止進(jìn)程
10.4.7 進(jìn)程退出狀態(tài)
10.4.8 日志
10.4.9 派生進(jìn)程
10.4.10 向進(jìn)程傳遞消息
10.4.11 進(jìn)程間信號(hào)傳輸
10.4.12 控制資源訪問(wèn)
10.4.13 同步操作
10.4.14 控制資源的并發(fā)訪問(wèn)
10.4.15 管理共享狀態(tài)
10.4.16 共享命名空間
10.4.17 進(jìn)程池
10.4.18 實(shí)現(xiàn)MapReduce
第11章 網(wǎng)絡(luò)通信
11.1 socket—網(wǎng)絡(luò)通信
11.1.1 尋址、協(xié)議簇和套接字類型
11.1.2 TCP/IP客戶和服務(wù)器
11.1.3 用戶數(shù)據(jù)報(bào)客戶和服務(wù)器
11.1.4 UNIX域套接字
11.1.5 組播
11.1.6 發(fā)送二進(jìn)制數(shù)據(jù)
11.1.7 非阻塞通信和超時(shí)
11.2 select—高效等待I/O
11.2.1 使用select()
11.2.2 有超時(shí)的非阻塞I/O
11.2.3 使用 poll()
11.2.4 平臺(tái)特定選項(xiàng)
11.3 SocketServer—?jiǎng)?chuàng)建網(wǎng)絡(luò)服務(wù)器
11.3.1 服務(wù)器類型
11.3.2 服務(wù)器對(duì)象
11.3.3 實(shí)現(xiàn)服務(wù)器
11.3.4 請(qǐng)求處理器
11.3.5 回應(yīng)示例
11.3.6 線程和進(jìn)程
11.4 asyncore—異步I/O
11.4.1 服務(wù)器
11.4.2 客戶
11.4.3 事件循環(huán)
11.4.4 處理其他事件循環(huán)
11.4.5 處理文件
11.5 asynchat—異步協(xié)議處理器
11.5.1 消息終止符
11.5.2 服務(wù)器和處理器
11.5.3 客戶
11.5.4 集成
第12章 Internet
12.1 urlparse—分解URL
12.1.1 解析
12.1.2 反解析
12.1.3 連接
12.2 BaseHTTPServer—實(shí)現(xiàn)Web服務(wù)器的基類
12.2.1 HTTP GET
12.2.2 HTTP POST
12.2.3 線程與進(jìn)程
12.2.4 處理錯(cuò)誤
12.2.5 設(shè)置首部
12.3 urllib—網(wǎng)絡(luò)資源訪問(wèn)
12.3.1 利用緩存實(shí)現(xiàn)簡(jiǎn)單獲取
12.3.2 參數(shù)編碼
12.3.3 路徑與URL
12.4 urllib2—網(wǎng)絡(luò)資源訪問(wèn)
12.4.1 HTTP GET
12.4.2 參數(shù)編碼
12.4.3 HTTP POST
12.4.4 增加發(fā)出首部
12.4.5 從請(qǐng)求提交表單數(shù)據(jù)
12.4.6 上傳文件
12.4.7 創(chuàng)建定制協(xié)議處理器
12.5 Base64—用ASCII編碼二進(jìn)制數(shù)據(jù)
12.5.1 Base64編碼
12.5.2 Base64解碼
12.5.3 URL安全的變種
12.5.4 其他編碼
12.6 robotparser—網(wǎng)絡(luò)蜘蛛訪問(wèn)控制
12.6.1 robots.txt
12.6.2 測(cè)試訪問(wèn)權(quán)限
12.6.3 長(zhǎng)久蜘蛛
12.7 Cookie—HTTP Cookie
12.7.1 創(chuàng)建和設(shè)置Cookie
12.7.2 Morsel
12.7.3 編碼值
12.7.4 接收和解析Cookie首部
12.7.5 候選輸出格式
12.7.6 廢棄的類
12.8 uuid—全局惟一標(biāo)識(shí)符
12.8.1 UUID 1—IEEE 802 MAC地址
12.8.2 UUID 3和5—基于名字的值
12.8.3 UUID 4—隨機(jī)值
12.8.4 處理UUID對(duì)象
12.9 json—JavaScript對(duì)象記法
12.9.1 編碼和解碼簡(jiǎn)單數(shù)據(jù)類型
12.9.2 優(yōu)質(zhì)輸出和緊湊輸出
12.9.3 編碼字典
12.9.4 處理定制類型
12.9.5 編碼器和解碼器類
12.9.6 處理流和文件
12.9.7 混合數(shù)據(jù)流
12.10 xmlrpclib—XML-RPC的客戶端庫(kù)
12.10.1 連接服務(wù)器
12.10.2 數(shù)據(jù)類型
12.10.3 傳遞對(duì)象
12.10.4 二進(jìn)制數(shù)據(jù)
12.10.5 異常處理
12.10.6 將調(diào)用結(jié)合在一個(gè)消息中
12.11 SimpleXMLRPCServer—一個(gè)XML-RPC服務(wù)器
12.11.1 一個(gè)簡(jiǎn)單的服務(wù)器
12.11.2 備用API名
12.11.3 加點(diǎn)的API名
12.11.4 任意API名
12.11.5 公布對(duì)象的方法
12.11.6 分派調(diào)用
12.11.7 自省API
第13章 Email
13.1 smtplib—簡(jiǎn)單郵件傳輸協(xié)議客戶
13.1.1 發(fā)送Email消息
13.1.2 認(rèn)證和加密
13.1.3 驗(yàn)證Email地址
13.2 smtpd—示例郵件服務(wù)器
13.2.1 郵件服務(wù)器基類
13.2.2 調(diào)試服務(wù)器
13.2.3 代理服務(wù)器
13.3 imaplib—IMAP4客戶庫(kù)
13.3.1 變種
13.3.2 連接到服務(wù)器
13.3.3 示例配置
13.3.4 列出郵箱
13.3.5 郵箱狀態(tài)
13.3.6 選擇郵箱
13.3.7 搜索消息
13.3.8 搜索規(guī)則
13.3.9 獲取消息
13.3.10 完整消息
13.3.11 上傳消息
13.3.12 移動(dòng)和復(fù)制消息
13.3.13 刪除消息
13.4 mailbox—管理郵件歸檔
13.4.1 mbox
13.4.2 Maildir
13.4.3 其他格式
第14章 應(yīng)用構(gòu)建模塊
14.1 getopt—命令行選項(xiàng)解析
14.1.1 函數(shù)參數(shù)
14.1.2 短格式選項(xiàng)
14.1.3 長(zhǎng)格式選項(xiàng)
14.1.4 一個(gè)完整的例子
14.1.5 縮寫長(zhǎng)格式選項(xiàng)
14.1.6 GNU選項(xiàng)解析
14.1.7 結(jié)束參數(shù)處理
14.2 optparse—命令行選項(xiàng)解析器
14.2.1 創(chuàng)建OptionParser
14.2.2 短格式和長(zhǎng)格式選項(xiàng)
14.2.3 用getopt比較
14.2.4 選項(xiàng)值
14.2.5 選項(xiàng)動(dòng)作
14.2.6 幫助消息
14.3 argparse—命令行選項(xiàng)和參數(shù)解析
14.3.1 與optparse比較
14.3.2 建立解析器
14.3.3 定義參數(shù)
14.3.4 解析命令行
14.3.5 簡(jiǎn)單示例
14.3.6 自動(dòng)生成的選項(xiàng)
14.3.7 解析器組織
14.3.8 高級(jí)參數(shù)處理
14.4 readline—GNU Readline庫(kù)
14.4.1 配置
14.4.2 完成文本
14.4.3 訪問(wèn)完成緩沖區(qū)
14.4.4 輸入歷史
14.4.5 hook
14.5 getpass—安全密碼提示
14.5.1 示例
14.5.2 無(wú)終端使用getpass
14.6 cmd—面向行的命令處理器
14.6.1 處理命令
14.6.2 命令參數(shù)
14.6.3 現(xiàn)場(chǎng)幫助
14.6.4 自動(dòng)完成
14.6.5 覆蓋基類方法
14.6.6 通過(guò)屬性配置Cmd
14.6.7 運(yùn)行shell命令
14.6.8 候選輸入
14.6.9 sys.argv的命令
14.7 shlex—解析shell語(yǔ)法
14.7.1 加引號(hào)的字符串
14.7.2 嵌入注釋
14.7.3 分解
14.7.4 包含其他Token源
14.7.5 控制解析器
14.7.6 錯(cuò)誤處理
14.7.7 POSIX與非POSIX解析
14.8 ConfigParser—處理配置文件
14.8.1 配置文件格式
14.8.2 讀取配置文件
14.8.3 訪問(wèn)配置設(shè)置
14.8.4 修改設(shè)置
14.8.5 保存配置文件
14.8.6 選項(xiàng)搜索路徑
14.8.7 用接合合并值
14.9 日志—報(bào)告狀態(tài)、錯(cuò)誤和信息消息
14.9.1 應(yīng)用與庫(kù)中的日志記錄
14.9.2 記入文件
14.9.3 旋轉(zhuǎn)日志文件
14.9.4 詳細(xì)級(jí)別
14.9.5 命名日志記錄器實(shí)例
14.10 fileinput—命令行過(guò)濾器框架
14.10.1 M3U文件轉(zhuǎn)換為RSS
14.10.2 進(jìn)度元數(shù)據(jù)
14.10.3 原地過(guò)濾
14.11 atexit—程序關(guān)閉回調(diào)
14.11.1 示例
14.11.2 什么情況下不調(diào)用atexit函數(shù)
14.11.3 處理異常
14.12 sched—定時(shí)事件調(diào)度器
14.12.1 有延遲地運(yùn)行事件
14.12.2 重疊事件
14.12.3 事件優(yōu)先級(jí)
14.12.4 取消事件
第15章 國(guó)際化和本地化
15.1 gettext—消息編目
15.1.1 轉(zhuǎn)換工作流概述
15.1.2 由源代碼創(chuàng)建消息編目
15.1.3 運(yùn)行時(shí)查找消息編目
15.1.4 復(fù)數(shù)值
15.1.5 應(yīng)用與模塊本地化
15.1.6 切換轉(zhuǎn)換
15.2 locale—文化本地化API
15.2.1 探查當(dāng)前本地化環(huán)境
15.2.2 貨幣
15.2.3 格式化數(shù)字
15.2.4 解析數(shù)字
15.2.5 日期和時(shí)間
第16章 開發(fā)工具
16.1 pydoc—模塊的聯(lián)機(jī)幫助
16.1.1 純文本幫助
16.1.2 HTML幫助
16.1.3 交互式幫助
16.2 doctest—通過(guò)文檔完成測(cè)試
16.2.1 開始
16.2.2 處理不可預(yù)測(cè)的輸出
16.2.3 Traceback
16.2.4 避開空白符
16.2.5 測(cè)試位置
16.2.6 外部文檔
16.2.7 運(yùn)行測(cè)試
16.2.8 測(cè)試上下文
16.3 unittest—自動(dòng)測(cè)試框架
16.3.1 基本測(cè)試結(jié)構(gòu)
16.3.2 運(yùn)行測(cè)試
16.3.3 測(cè)試結(jié)果
16.3.4 斷言真值
16.3.5 測(cè)試相等性
16.3.6 近似相等
16.3.7 測(cè)試異常
16.3.8 測(cè)試固件
16.3.9 測(cè)試套件
16.4 traceback—異常和棧軌跡
16.4.1 支持函數(shù)
16.4.2 處理異常
16.4.3 處理?xiàng)?br />16.5 cgitb—詳細(xì)的traceback報(bào)告
16.5.1 標(biāo)準(zhǔn)traceback轉(zhuǎn)儲(chǔ)
16.5.2 啟用詳細(xì)traceback
16.5.3 traceback中的局部變量
16.5.4 異常屬性
16.5.5 HTML輸出
16.5.6 記錄traceback
16.6 pdb—交互式調(diào)試工具
16.6.1 啟動(dòng)調(diào)試工具
16.6.2 控制調(diào)試工具
16.6.3 斷點(diǎn)
16.6.4 改變執(zhí)行流
16.6.5 用別名定制調(diào)試工具
16.6.6 保存配置設(shè)置
16.7 trace—執(zhí)行程序流
16.7.1 示例程序
16.7.2 跟蹤執(zhí)行
16.7.3 代碼覆蓋
16.7.4 調(diào)用關(guān)系
16.7.5 編程接口
16.7.6 保存結(jié)果數(shù)據(jù)
16.7.7 選項(xiàng)
16.8 profile和pstats—性能分析
16.8.1 運(yùn)行性能分析工具
16.8.2 在上下文中運(yùn)行
16.8.3 pstats:保存和處理統(tǒng)計(jì)信息
16.8.4 限制報(bào)告內(nèi)容
16.8.5 調(diào)用圖
16.9 timeit—測(cè)量小段Python代碼的執(zhí)行時(shí)間
16.9.1 模塊內(nèi)容
16.9.2 基本示例
16.9.3 值存儲(chǔ)在字典中
16.9.4 從命令行執(zhí)行
16.10 compileall—字節(jié)編譯源文件
16.10.1 編譯一個(gè)目錄
16.10.2 編譯sys.path
16.10.3 從命令行執(zhí)行
16.11 pyclbr—類瀏覽器
16.11.1 掃描類
16.11.2 掃描函數(shù)
第17章 運(yùn)行時(shí)特性
17.1 site—全站點(diǎn)配置
17.1.1 導(dǎo)入路徑
17.1.2 用戶目錄
17.1.3 路徑配置文件
17.1.4 定制站點(diǎn)配置
17.1.5 定制用戶配置
17.1.6 禁用site模塊
17.2 sys—系統(tǒng)特定的配置
17.2.1 解釋器設(shè)置
17.2.2 運(yùn)行時(shí)環(huán)境
17.2.3 內(nèi)存管理和限制
17.2.4 異常處理
17.2.5 底層線程支持
17.2.6 模塊和導(dǎo)入
17.2.7 跟蹤程序運(yùn)行情況
17.3 os—可移植訪問(wèn)操作系統(tǒng)特定特性
17.3.1 進(jìn)程所有者
17.3.2 進(jìn)程環(huán)境
17.3.3 進(jìn)程工作目錄
17.3.4 管道
17.3.5 文件描述符
17.3.6 文件系統(tǒng)權(quán)限
17.3.7 目錄
17.3.8 符號(hào)鏈接
17.3.9 遍歷目錄樹
17.3.10 運(yùn)行外部命令
17.3.11 用os.fork()創(chuàng)建進(jìn)程
17.3.12 等待子進(jìn)程
17.3.13 Spawn
17.3.14 文件系統(tǒng)權(quán)限
17.4 platform—系統(tǒng)版本信息
17.4.1 解釋器
17.4.2 平臺(tái)
17.4.3 操作系統(tǒng)和硬件信息
17.4.4 可執(zhí)行程序體系結(jié)構(gòu)
17.5 resource—系統(tǒng)資源管理
17.5.1 當(dāng)前使用情況
17.5.2 資源限制
17.6 gc—垃圾回收器
17.6.1 跟蹤引用
17.6.2 強(qiáng)制垃圾回收
17.6.3 查找無(wú)法收集的對(duì)象引用
17.6.4 回收閾限和代
17.6.5 調(diào)試
17.7 sysconfig—解釋器編譯時(shí)配置
17.7.1 配置變量
17.7.2 安裝路徑
17.7.3 Python版本和平臺(tái)
第18章 語(yǔ)言工具
18.1 warnings—非致命警告
18.1.1 分類和過(guò)濾
18.1.2 生成警告
18.1.3 用模式過(guò)濾
18.1.4 重復(fù)的警告
18.1.5 候選消息傳送函數(shù)
18.1.6 格式化
18.1.7 警告中的棧層次
18.2 abc—抽象基類
18.2.1 為什么使用抽象基類
18.2.2 抽象基類如何工作
18.2.3 注冊(cè)一個(gè)具體類
18.2.4 通過(guò)派生實(shí)現(xiàn)
18.2.5 abc中的具體方法
18.2.6 抽象屬性
18.3 dis—Python字節(jié)碼反匯編工具
18.3.1 基本反匯編
18.3.2 反匯編函數(shù)
18.3.3 類
18.3.4 使用反匯編進(jìn)行調(diào)試
18.3.5 循環(huán)的性能分析
18.3.6 編譯器優(yōu)化
18.4 inspect—檢查現(xiàn)場(chǎng)對(duì)象
18.4.1 示例模塊
18.4.2 模塊信息
18.4.3 檢查模塊
18.4.4 檢查類
18.4.5 文檔串
18.4.6 獲取源代碼
18.4.7 方法和函數(shù)參數(shù)
18.4.8 類層次結(jié)構(gòu)
18.4.9 方法解析順序
18.4.10 棧與幀
18.5 exceptions—內(nèi)置異常類
18.5.1 基類
18.5.2 產(chǎn)生的異常
18.5.3 警告類型
第19章 模塊與包
19.1 imp—Python的導(dǎo)入機(jī)制
19.1.1 示例包
19.1.2 模塊類型
19.1.3 查找模塊
19.1.4 加載模塊
19.2 zipimport—從ZIP歸檔加載Python代碼
19.2.1 示例
19.2.2 查找模塊
19.2.3 訪問(wèn)代碼
19.2.4 源代碼
19.2.5 包
19.2.6 數(shù)據(jù)
19.3 pkgutil—包工具
19.3.1 包導(dǎo)入路徑
19.3.2 包的開發(fā)版本
19.3.3 用PKG文件管理路徑
19.3.4 嵌套包
19.3.5 包數(shù)據(jù)章節(jié)摘錄
版權(quán)頁(yè): 垂持久存儲(chǔ)數(shù)據(jù)以供長(zhǎng)期使用,這包括兩個(gè)方面:在對(duì)象的內(nèi)存中表示和存儲(chǔ)格式之間來(lái)回轉(zhuǎn)換數(shù)據(jù),以及處理轉(zhuǎn)換后數(shù)據(jù)的存儲(chǔ)區(qū)。標(biāo)準(zhǔn)庫(kù)包含很多模塊,可以在不同情況下處理這兩個(gè)方面。 有兩個(gè)模塊可以將對(duì)象轉(zhuǎn)換為一種可以傳輸或存儲(chǔ)的格式[這個(gè)過(guò)程稱為串行化(serializing)]。最常用的是使用pickle完成持久存儲(chǔ),因?yàn)樗梢耘c其他一些具體存儲(chǔ)串行化數(shù)據(jù)的標(biāo)準(zhǔn)庫(kù)模塊集成,如shelve。不過(guò)對(duì)基于Web的應(yīng)用,json則更為常用,因?yàn)樗芨玫嘏c現(xiàn)有Web服務(wù)存儲(chǔ)工具集成。 一旦將內(nèi)存中對(duì)象轉(zhuǎn)換為一種可以保存的格式,下一步就是確定如何存儲(chǔ)這個(gè)數(shù)據(jù)。如果數(shù)據(jù)不需要以某種方式索引,依序先后寫入串行化對(duì)象的簡(jiǎn)單平面文件就很適用。Python包括一組模塊可以在一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)中存儲(chǔ)鍵一值對(duì),需要索引查找時(shí)會(huì)使用某種變種DBM格式。 要利用DBM格式,最直接的方式就是shelve??梢源蜷_shelve文件,并通過(guò)一個(gè)類字典的API來(lái)訪問(wèn)。保存到數(shù)據(jù)庫(kù)的對(duì)象會(huì)自動(dòng)pickle并保存,而無(wú)須調(diào)用者做任何額外的工作。 不過(guò)shelve有一個(gè)缺點(diǎn),使用默認(rèn)接口時(shí),沒(méi)有辦法預(yù)測(cè)將使用哪一個(gè)DBM格式,因?yàn)樗鼤?huì)根據(jù)創(chuàng)建數(shù)據(jù)庫(kù)的系統(tǒng)上有哪些可用的庫(kù)來(lái)進(jìn)行選擇。如果應(yīng)用不需要在庫(kù)配置不同的主機(jī)之間共享數(shù)據(jù)庫(kù)文件,那么選擇哪種格式并不重要;不過(guò),如果必須保證可移植性,可以使用這個(gè)模塊中的某個(gè)類來(lái)確保選擇一個(gè)特定的格式。 對(duì)于Web應(yīng)用,由于這些應(yīng)用處理的就是JSON格式的數(shù)據(jù),因此使用json和anydbm可以提供另一種持久存儲(chǔ)機(jī)制。直接使用anydbm會(huì)比shelve稍微多做一些工作,因?yàn)镈BM數(shù)據(jù)庫(kù)鍵和值必須是字符串,而且在數(shù)據(jù)庫(kù)中訪問(wèn)值時(shí)不會(huì)自動(dòng)地重新創(chuàng)建對(duì)象。 大多數(shù)Python發(fā)布版本都提供了sqlite3進(jìn)程中關(guān)系數(shù)據(jù)庫(kù),可以采用比鍵一值對(duì)更復(fù)雜的組織來(lái)存儲(chǔ)數(shù)據(jù)。它將數(shù)據(jù)庫(kù)存儲(chǔ)在內(nèi)存中或者存儲(chǔ)在一個(gè)本地文件中,所有訪問(wèn)都來(lái)自同一個(gè)進(jìn)程,所以不存在網(wǎng)絡(luò)通信延遲。sqlite3的緊湊性使它尤其適合嵌入到桌面應(yīng)用或Web應(yīng)用的開發(fā)版本中。編輯推薦
《Python標(biāo)準(zhǔn)庫(kù)》的讀者應(yīng)該是中等水平的Python程序員,所以盡管書中對(duì)所有源代碼都做了討論,但只有一部分會(huì)逐行給出解釋。每節(jié)會(huì)通過(guò)源代碼和完全獨(dú)立的示例程序的輸出來(lái)重點(diǎn)介紹一個(gè)模塊的特性。我會(huì)盡可能簡(jiǎn)潔地介紹各個(gè)特性,使讀者能夠把重點(diǎn)放在所展示的模塊或函數(shù)上,而不會(huì)因支持代碼而分心。圖書封面
圖書標(biāo)簽Tags
無(wú)評(píng)論、評(píng)分、閱讀與下載
- 還沒(méi)讀過(guò)(94)
- 勉強(qiáng)可看(682)
- 一般般(116)
- 內(nèi)容豐富(4828)
- 強(qiáng)力推薦(395)
Python標(biāo)準(zhǔn)庫(kù) PDF格式下載