本書(shū)深入淺出地講解了如何利用Python實(shí)現(xiàn)高效辦公,包含Python編程的基礎(chǔ)知識(shí),以及Python在辦公自動(dòng)化方面的應(yīng)用。
本書(shū)內(nèi)容分2篇,共12章。第一篇介紹Python編程的基礎(chǔ)知識(shí),涉及Python編程的基本語(yǔ)法、流程控制、數(shù)據(jù)模型、函數(shù)式編程、程序調(diào)試與異常處理、面向?qū)ο缶幊痰取5诙榻BPython在辦公自動(dòng)化領(lǐng)域的應(yīng)用,分為文件批處理、使用正則表達(dá)式對(duì)文本內(nèi)容進(jìn)行批處理、Excel數(shù)據(jù)分析自動(dòng)化、圖片批處理、爬取互聯(lián)網(wǎng)數(shù)據(jù)、PDF文檔處理自動(dòng)化,基本涵蓋了文件處理和數(shù)據(jù)分析方面的自動(dòng)化辦公工作。
本書(shū)提供豐富的配套資源(如教學(xué)視頻、PPT、案例數(shù)據(jù)、源代碼和編程練習(xí)的參考答案),讀者可以參考學(xué)習(xí)并嘗試將書(shū)中介紹的解決方案用于實(shí)際工作中,有助于提升辦公效率,夯實(shí)編程技能。
本書(shū)不要求讀者擁有Python或編程基礎(chǔ),適合想要入門(mén)Python編程的讀者閱讀,也適合想要利用Python實(shí)現(xiàn)辦公自動(dòng)化、提升辦公效率的讀者閱讀。
1.本書(shū)內(nèi)容新穎,結(jié)構(gòu)合理
本書(shū)分為基礎(chǔ)篇和實(shí)踐篇,不同層次的人群可選擇性學(xué)習(xí)。基礎(chǔ)篇通俗易懂,適合零基礎(chǔ)編程人群學(xué)習(xí);實(shí)踐篇基本涵蓋了自動(dòng)化文檔處理、文件處理和數(shù)據(jù)分析方面的案例,適合有自動(dòng)化辦公需求的讀者閱讀,也適合想提升編程能力的讀者閱讀。
2.技巧實(shí)用、案例豐富
本書(shū)提供了豐富的自動(dòng)化辦公案例,還通過(guò)掃描看視頻的方式幫助讀者掌握實(shí)踐細(xì)節(jié),提高辦公效率。
3.資源豐富,輕松上手
本書(shū)提供強(qiáng)大的配套資源,不僅包括全書(shū)所有程序案例的代碼和源數(shù)據(jù),還包括與書(shū)配套的PPT講稿和編程練習(xí)的參考答案。
郎宏林,擁有多年自然語(yǔ)言處理和企事業(yè)辦公自動(dòng)化領(lǐng)域的研發(fā)經(jīng)驗(yàn),在使用信息技術(shù)改造傳統(tǒng)辦公方式過(guò)程中,首先提出了文檔一體化概念并應(yīng)用于實(shí)踐,提高了辦公效率,F(xiàn)就職于某科技公司,任技術(shù)負(fù)責(zé)人和架構(gòu)師,熟悉項(xiàng)目管理,精通Java、C#、Python等編程語(yǔ)言。
丁盈,在中文信息處理領(lǐng)域工作十余年,對(duì)機(jī)器翻譯、辦公自動(dòng)化等技術(shù)有一定的研究,精通 Python 編程語(yǔ)言,現(xiàn)就職于某科技公司專(zhuān)家委員會(huì)。
第 一篇 Python編程基礎(chǔ)
第 1章 入門(mén)Python 2
1.1 初識(shí)Python 2
1.1.1 下載和安裝Python 2
1.1.2 了解Python的交互環(huán)境 4
1.1.3 算式 5
1.2 變量與常量 7
1.2.1 變量的定義 7
1.2.2 變量的命名 7
1.2.3 變量的賦值 8
1.2.4 常量 9
1.2.5 輸入與輸出函數(shù) 10
1.3 數(shù)據(jù)類(lèi)型 11
1.3.1 認(rèn)識(shí)數(shù)據(jù)類(lèi)型 11
1.3.2 整數(shù)類(lèi)型 12
1.3.3 浮點(diǎn)類(lèi)型 13
1.3.4 布爾類(lèi)型 14
1.3.5 復(fù)數(shù)類(lèi)型 14
1.4 字符串 15
1.4.1 認(rèn)識(shí)字符串 15
1.4.2 字符串的拼接 15
1.4.3 字符串的訪(fǎng)問(wèn) 16
1.4.4 字符串的判斷 17
1.4.5 字符串相等判斷 18
1.5 格式化輸出 19
1.5.1 格式化輸出案例 19
1.5.2 print函數(shù)的格式化輸出功能 19
1.5.3 占位符“%d”的使用 20
1.5.4 占位符“%s”的使用 21
1.5.5 占位符“%f”的使用 21
1.6 編輯代碼 22
1.6.1 使用代碼編輯器 22
1.6.2 代碼注釋 23
1.6.3 代碼縮進(jìn) 24
1.6.4 編寫(xiě)多行語(yǔ)句 25
1.6.5 轉(zhuǎn)義符 25
1.6.6 編碼規(guī)范 25
1.7 流程圖 26
1.7.1 使用流程圖描述程序步驟 26
1.7.2 認(rèn)識(shí)流程圖 27
1.7.3 如何繪制流程圖 30
1.8 編程練習(xí) 32
第 2章 流程控制 34
2.1 條件判斷結(jié)構(gòu) 34
2.1.1 關(guān)系表達(dá)式 34
2.1.2 簡(jiǎn)單條件結(jié)構(gòu) 35
2.1.3 邏輯表達(dá)式 36
2.1.4 多重條件的判斷 38
2.1.5 嵌套條件的判斷 40
2.2 計(jì)算自然數(shù)1~100的累加和 42
2.2.1 使用推土機(jī)算法 42
2.2.2 使用簡(jiǎn)便算法 42
2.2.3 使用Python計(jì)算自然數(shù)
1~100的累加和 43
2.2.4 認(rèn)識(shí)for循環(huán)結(jié)構(gòu) 44
2.2.5 認(rèn)識(shí)range函數(shù) 45
2.2.6 用for循環(huán)計(jì)算1~100的
累加和 46
2.3 while循環(huán)結(jié)構(gòu) 47
2.3.1 如何保持程序運(yùn)行 47
2.3.2 認(rèn)識(shí)while循環(huán)結(jié)構(gòu) 48
2.3.3 保持程序的運(yùn)行 50
2.4 嵌套循環(huán)與循環(huán)退出 52
2.4.1 for嵌套循環(huán) 52
2.4.2 break和continue語(yǔ)句 53
2.4.3 while嵌套循環(huán) 56
2.5 編程練習(xí) 58
第3章 數(shù)據(jù)模型 61
3.1 類(lèi)與對(duì)象 61
3.1.1 類(lèi)和對(duì)象的關(guān)系 61
3.1.2 認(rèn)識(shí)類(lèi) 62
3.1.3 序列對(duì)象 63
3.2 列表類(lèi)型 64
3.2.1 列表結(jié)構(gòu) 64
3.2.2 可變序列 65
3.2.3 列表排序 69
3.2.4 列表遍歷 69
3.3 元組類(lèi)型 70
3.3.1 元組結(jié)構(gòu) 70
3.3.2 元組的創(chuàng)建 70
3.3.3 元組的訪(fǎng)問(wèn) 71
3.3.4 元組的遍歷 72
3.4 字典類(lèi)型 72
3.4.1 字典結(jié)構(gòu) 72
3.4.2 如何創(chuàng)建一個(gè)字典對(duì)象 73
3.4.3 字典更新與刪除 73
3.4.4 字典的訪(fǎng)問(wèn) 74
3.4.5 判斷key是否在字典中 75
3.5 可迭代對(duì)象 75
3.5.1 迭代器協(xié)議 75
3.5.2 用迭代器遍歷序列對(duì)象 76
3.6 編程練習(xí) 78
第4章 函數(shù)式編程 80
4.1 函數(shù)與代碼的可復(fù)用性 80
4.1.1 語(yǔ)句重復(fù)的代碼 80
4.1.2 功能重復(fù)的代碼 81
4.1.3 使用函數(shù)解決功能重復(fù)的問(wèn)題 81
4.1.4 函數(shù)的結(jié)構(gòu) 82
4.2 函數(shù)參數(shù)的使用 83
4.2.1 函數(shù)的參數(shù) 83
4.2.2 默認(rèn)參數(shù) 84
4.2.3 可變參數(shù) 85
4.2.4 關(guān)鍵字參數(shù) 86
4.3 常用內(nèi)置函數(shù) 86
4.3.1 構(gòu)造字符串、列表、元組、
字典對(duì)象 87
4.3.2 對(duì)象的操作 89
4.3.3 運(yùn)算與聚合處理函數(shù) 94
4.4 變量的作用域 97
4.4.1 標(biāo)識(shí)符 97
4.4.2 局部和全局變量的作用域 97
4.4.3 局部變量和全局變量名稱(chēng)
相同 98
4.4.4 嵌套函數(shù)的作用域 99
4.5 列表解析表達(dá)式 99
4.5.1 使用一條語(yǔ)句來(lái)創(chuàng)建列表 100
4.5.2 使用條件表達(dá)式過(guò)濾列表 100
4.5.3 使用表達(dá)式初始化列表元素 100
4.5.4 創(chuàng)建矩陣 101
4.6 lambda表達(dá)式 101
4.6.1 認(rèn)識(shí)lambda表達(dá)式 101
4.6.2 內(nèi)置函數(shù)filter 102
4.6.3 lambda表達(dá)式使用案例 102
4.7 生成器類(lèi)型與yield表達(dá)式 103
4.7.1 可迭代對(duì)象和迭代器 103
4.7.2 認(rèn)識(shí)yield表達(dá)式 104
4.7.3 生成器類(lèi)型的方法 104
4.7.4 生成器示例 105
4.8 模塊與包 106
4.8.1 模塊的作用 106
4.8.2 import語(yǔ)句 109
4.8.3 搜索路徑 110
4.8.4 包 111
4.8.5 主模塊 111
4.9 編程練習(xí) 113
第5章 程序調(diào)試與異常處理 115
5.1 調(diào)試Python程序 115
5.1.1 使用print函數(shù)調(diào)試程序 115
5.1.2 使用assert斷言語(yǔ)句調(diào)試程序 116
5.1.3 使用log輸出程序運(yùn)行狀態(tài) 117
5.1.4 使用內(nèi)置函數(shù)breakpoint設(shè)置
斷點(diǎn) 117
5.1.5 調(diào)試程序 118
5.2 處理程序出現(xiàn)的異!119
5.2.1 認(rèn)識(shí)Python異!119
5.2.2 異常的處理和檢測(cè) 121
5.2.3 內(nèi)置異!123
5.3 編程練習(xí) 124
第6章 面向?qū)ο缶幊獭?25
6.1 類(lèi)與類(lèi)的封裝 125
6.1.1 面向?qū)ο缶幊痰母拍睢?26
6.1.2 類(lèi)的封裝 127
6.2 類(lèi)的定義與訪(fǎng)問(wèn) 128
6.2.1 定義一個(gè)Python類(lèi) 128
6.2.2 類(lèi)實(shí)例化為對(duì)象 130
6.2.3 訪(fǎng)問(wèn)對(duì)象的屬性和方法 131
6.2.4 使用內(nèi)置函數(shù)操作對(duì)象的
屬性 133
6.2.5 類(lèi)方法的不同稱(chēng)謂及作用 133
6.2.6 類(lèi)屬性的不同稱(chēng)謂及作用 136
6.3 類(lèi)的繼承 137
6.4 類(lèi)的多態(tài)性 140
6.4.1 認(rèn)識(shí)類(lèi)的多態(tài)性 140
6.4.2 pass語(yǔ)句 143
6.5 編程練習(xí) 144
第二篇 辦公自動(dòng)化
第7章 文件批處理 146
7.1 文件批量命名 146
7.1.1 文件和目錄 146
7.1.2 拼接文件路徑 147
7.1.3 提取文件創(chuàng)建時(shí)間 147
7.1.4 文件重命名 148
7.1.5 提取文件擴(kuò)展名 148
7.1.6 判斷文件和目錄 148
7.1.7 遍歷文件 149
7.1.8 文件批量命令示例 149
7.2 文件內(nèi)容批量替換 150
7.2.1 open函數(shù) 150
7.2.2 讀取文件內(nèi)容 152
7.2.3 替換文件內(nèi)容 153
7.2.4 保存文件到磁盤(pán) 153
7.2.5 批量替換示例 154
7.3 創(chuàng)建文件和目錄 155
7.3.1 創(chuàng)建單個(gè)目錄 155
7.3.2 with語(yǔ)句與上下文管理 156
7.3.3 批量創(chuàng)建目錄 157
7.3.4 批量創(chuàng)建文件 157
7.3.5 文件和目錄批量創(chuàng)建示例 158
7.4 提取文件屬性 159
7.4.1 提取文件修改時(shí)間 159
7.4.2 提取文件最近訪(fǎng)問(wèn)時(shí)間 160
7.4.3 提取文件大小 160
7.4.4 讀寫(xiě)CSV文件 160
7.4.5 遍歷子目錄 162
7.4.6 文件屬性提取示例 162
7.5 編程練習(xí) 164
第8章 使用正則表達(dá)式對(duì)文本內(nèi)容進(jìn)行
批處理 165
8.1 入門(mén)正則表達(dá)式 165
8.1.1 原始字符串標(biāo)記 165
8.1.2 初識(shí)正則表達(dá)式 166
8.1.3 正則表達(dá)式元字符 169
8.1.4 正則匹配模式及其標(biāo)志 172
8.2 正則表達(dá)式相關(guān)的對(duì)象 173
8.2.1 正則表達(dá)式對(duì)象 173
8.2.2 Math對(duì)象 178
8.3 批量檢查和替換文本內(nèi)容 181
8.3.1 敏感詞批量檢測(cè) 181
8.3.2 校驗(yàn)通訊錄的郵箱格式 182
8.3.3 批量替換指定的文本內(nèi)容 183
8.3.4 批量提取符合規(guī)則的內(nèi)容 184
8.4 編程練習(xí) 185
第9章 Excel數(shù)據(jù)分析自動(dòng)化 187
9.1 科學(xué)計(jì)算工具NumPy 187
9.1.1 安裝NumPy 187
9.1.2 NumPy數(shù)組 187
9.1.3 數(shù)組操作 190
9.1.4 數(shù)組的索引和訪(fǎng)問(wèn) 191
9.1.5 數(shù)組的切片 192
9.1.6 花式索引 194
9.1.7 布爾索引 195
9.1.8 where函數(shù) 196
9.2 數(shù)據(jù)分析工具pandas 197
9.2.1 安裝pandas庫(kù) 197
9.2.2 pandas數(shù)據(jù)對(duì)象 197
9.2.3 重新索引 198
9.2.4 算術(shù)運(yùn)算 199
9.2.5 使用函數(shù)處理數(shù)據(jù) 200
9.3 Excel工作簿的讀取與寫(xiě)入 202
9.3.1 Excel文件構(gòu)成 202
9.3.2 讀取Excel工作表 202
9.3.3 訪(fǎng)問(wèn)Excel單元格數(shù)據(jù) 204
9.3.4 DataFrame數(shù)據(jù)寫(xiě)入Excel
工作簿 204
9.4 Excel的提取與合并 206
9.4.1 將多個(gè)工作簿提取到一個(gè)
工作簿 206
9.4.2 將多個(gè)工作簿提取到一個(gè)
工作表 208
9.4.3 將同名工作表提取到一個(gè)
工作表 208
9.4.4 將同名工作表提取到一個(gè)
工作簿 209
9.5 數(shù)據(jù)可視化工具M(jìn)atplotlib 210
9.5.1 安裝Matplotlib庫(kù) 210
9.5.2 使用Matplotlib繪圖 210
9.5.3 繪制函數(shù)圖像 213
9.5.4 繪制柱狀圖 217
9.5.5 繪制折線(xiàn)圖 218
9.5.6 繪制散點(diǎn)圖 220
9.6 Excel匯總統(tǒng)計(jì) 221
9.6.1 同一工作簿下的多工作表
匯總 221
9.6.2 將多個(gè)工作簿匯總到一個(gè)
工作簿 223
9.6.3 自動(dòng)生成數(shù)據(jù)透視表 224
9.7 數(shù)據(jù)分析案例 226
9.7.1 泰坦尼克號(hào)沉船乘客數(shù)據(jù) 226
9.7.2 缺失值和異常值的處理 226
9.7.3 統(tǒng)計(jì)男女乘客人數(shù)、船艙等級(jí)
分布人數(shù)和兒童人數(shù) 227
9.7.4 分別統(tǒng)計(jì)船艙等級(jí)、性別、
年齡段對(duì)應(yīng)的獲救情況 229
9.8 Excel報(bào)表自動(dòng)化 232
9.8.1 報(bào)表任務(wù) 232
9.8.2 日期和時(shí)間類(lèi)型 233
9.8.3 數(shù)據(jù)分析 237
9.8.4 生成報(bào)表 238
9.9 編程練習(xí) 240
第 10章 圖片批處理 241
10.1 Pillow庫(kù) 241
10.1.1 安裝Pillow庫(kù) 241
10.1.2 Image對(duì)象 241
10.1.3 ImageDraw對(duì)象 243
10.2 圖片格式批量轉(zhuǎn)換 244
10.2.1 讀取圖片文件 244
10.2.2 設(shè)置圖片尺寸 244
10.2.3 圖片格式轉(zhuǎn)換 245
10.2.4 格式批量轉(zhuǎn)換示例 245
10.3 圖片效果處理 246
10.3.1 ImageFilter對(duì)象 246
10.3.2 模糊濾鏡的使用 247
10.3.3 輪廓濾鏡的使用 247
10.3.4 浮雕濾鏡的使用 248
10.3.5 彩色圖像處理為灰度圖像 248
10.3.6 圖片效果示例 249
10.4 圖片添加文字和水印 250
10.4.1 圖片添加文字 250
10.4.2 圖片添加水印 250
10.4.3 添加文字和水印示例 251
10.5 編程練習(xí) 252
第 11章 爬取互聯(lián)網(wǎng)數(shù)據(jù) 253
11.1 入門(mén)爬蟲(chóng) 253
11.1.1 安裝Scrapy 253
11.1.2 一個(gè)簡(jiǎn)單的爬蟲(chóng)項(xiàng)目 254
11.2 HTML與XPath 257
11.2.1 標(biāo)記語(yǔ)言 257
11.2.2 XPath語(yǔ)法 259
11.2.3 定位符號(hào) 260
11.2.4 運(yùn)算符 261
11.2.5 謂詞 261
11.2.6 XPath函數(shù) 261
11.3 Scrapy框架 264
11.3.1 爬蟲(chóng)的基本工作原理 264
11.3.2 Scrapy爬蟲(chóng)的工作機(jī)制 265
11.3.3 請(qǐng)求與響應(yīng) 265
11.3.4 Request對(duì)象 266
11.3.5 改進(jìn)百度新聞爬蟲(chóng)項(xiàng)目 267
11.3.6 選擇器 270
11.3.7 數(shù)據(jù)的定義 271
11.3.8 數(shù)據(jù)的處理ItemLoader類(lèi) 272
11.3.9 Scrapy內(nèi)置數(shù)據(jù)處理器 273
11.3.10 為每個(gè)Item數(shù)據(jù)項(xiàng)添加處理器 275
11.3.11 爬蟲(chóng)Spider類(lèi) 277
11.3.12 CrawlSpider類(lèi) 279
11.3.13 配置文件 280
11.3.14 Pipeline管道類(lèi) 281
11.4 爬取互聯(lián)網(wǎng)文本內(nèi)容 283
11.4.1 任務(wù)描述 283
11.4.2 創(chuàng)建CrawlSpider爬蟲(chóng) 283
11.4.3 定義Item數(shù)據(jù)容器 284
11.4.4 定義數(shù)據(jù)處理ItemLoader類(lèi) 284
11.4.5 定義Pipeline管道類(lèi) 286
11.4.6 編輯CrawlSpider爬蟲(chóng)代碼 287
11.5 爬取互聯(lián)網(wǎng)圖片 288
11.5.1 任務(wù)描述 288
11.5.2 圖片管道對(duì)象 288
11.5.3 使用圖片管道對(duì)象 290
11.5.4 生成縮略圖 294
11.5.5 圖片最近下載延遲調(diào)整 294
11.6 爬取互聯(lián)網(wǎng)文件 294
11.6.1 任務(wù)描述 295
11.6.2 分析網(wǎng)站 295
11.6.3 定義數(shù)據(jù)項(xiàng) 296
11.6.4 文件下載管道類(lèi) 296
11.6.5 修改配置文件 297
11.6.6 編輯爬蟲(chóng)文件 297
11.6.7 運(yùn)行爬蟲(chóng) 298
11.7 編程練習(xí) 299
第 12章 PDF文檔處理自動(dòng)化 300
12.1 批量合并PDF文檔 300
12.1.1 安裝PyPDF2 300
12.1.2 讀取PDF 300
12.1.3 寫(xiě)入PDF 301
12.1.4 合并PDF示例 302
12.2 拆分PDF文檔 304
12.2.1 章節(jié)提取 304
12.2.2 設(shè)置頁(yè)碼 305
12.2.3 拆分PDF示例 305
12.3 輸出圖片 305
12.3.1 安裝PyMuPDF 306
12.3.2 使用PyMuPDF 306
12.3.3 圖片輸出示例 307
12.4 提取文本 307
12.4.1 內(nèi)容提取 307
12.4.2 軟換行和空行處理 308
12.4.3 文本提取示例 308
12.5 編程練習(xí) 310