寫(xiě)給系統(tǒng)管理員的Python腳本編程指南
定 價(jià):69 元
- 作者:[印度]甘尼什·桑吉夫·奈克(Ganesh Sanjiv Naik)
- 出版時(shí)間:2020/1/1
- ISBN:9787115523662
- 出 版 社:人民郵電出版社
- 中圖法分類(lèi):TP311.561
- 頁(yè)碼:242
- 紙張:
- 版次:01
- 開(kāi)本:16開(kāi)
本書(shū)是一本介紹Python編程的進(jìn)階圖書(shū),包含了大量關(guān)于Python腳本設(shè)計(jì)的主題。本書(shū)共18章,首先帶領(lǐng)讀者快速?gòu)?fù)習(xí)Python基礎(chǔ)知識(shí),然后循序漸進(jìn)地介紹了一些實(shí)用主題,包括Python腳本的調(diào)試和分析、編寫(xiě)單元測(cè)試、系統(tǒng)管理、處理文件和數(shù)據(jù)、文件歸檔以及文本處理等。然后介紹了網(wǎng)絡(luò)編程、處理電子郵件、遠(yuǎn)程控制主機(jī)、創(chuàng)建圖形用戶(hù)界面、處理日志文件、編寫(xiě)網(wǎng)絡(luò)爬蟲(chóng)、數(shù)據(jù)收集和可視化以及操作數(shù)據(jù)庫(kù)等更加高階的主題。本書(shū)中每一知識(shí)點(diǎn)都結(jié)合可以運(yùn)行的源碼講解,幫助讀者更好地掌握Python腳本編程。
本書(shū)要求讀者具備Python的基礎(chǔ)知識(shí),非常適合對(duì)Python編程有基本了解并且有興趣將編程技能擴(kuò)展到命令行腳本和系統(tǒng)管理的讀者閱讀。
1.從基礎(chǔ)到高級(jí)編程,全面系統(tǒng)地介紹Python腳本在系統(tǒng)管理中的作用。
2.市場(chǎng)上少見(jiàn)的介紹將Python腳本應(yīng)用于系統(tǒng)管理的圖書(shū)。
3.本書(shū)附有配套資源,幫助讀者學(xué)以致用,將所學(xué)應(yīng)用到真實(shí)場(chǎng)景中。
隨著時(shí)間的推移,Python不斷發(fā)展并擴(kuò)展了其與IT操作相關(guān)的功能。Python簡(jiǎn)單易學(xué),但具有功能強(qiáng)大的庫(kù),可用于 編寫(xiě)腳本以解決實(shí)際問(wèn)題并自動(dòng)執(zhí)行管理員的日常活動(dòng)。本書(shū)的目的是通過(guò)完成一系列項(xiàng)目,幫助讀者掌握在項(xiàng)目中使用Python腳本的方法。
本書(shū)首先介紹Python的安裝,并講解編程基礎(chǔ)知識(shí)。然后,本書(shū)將側(cè)重于解析整個(gè)開(kāi)發(fā)過(guò)程,從配置到準(zhǔn)備再到構(gòu)建 不同的工具,包括IT管理員的日;顒(dòng)(文本處理、正則表達(dá)式、文件存檔和加密)、網(wǎng)絡(luò)管理(套接字編程、電子郵 件處理、使用Telnet/SSH遠(yuǎn)程控制設(shè)備以及SNMP/DHCP等協(xié)議)、創(chuàng)建圖形用戶(hù)界面、網(wǎng)站處理(Apache日志 文件處理、SOAP和REST API通信、Web抓。,以及數(shù)據(jù)庫(kù)管理(MySQL和相似數(shù)據(jù)庫(kù)數(shù)據(jù)管理、數(shù)據(jù)分析和報(bào)告)。學(xué)完本書(shū),讀者將能夠使用Python功能構(gòu)建強(qiáng)大的工具以解決具有挑戰(zhàn)性的實(shí)際任務(wù)。
讀者將學(xué)到以下內(nèi)容:
■ 了解如何安裝Python和調(diào)試Python腳本;
■ 了解和編寫(xiě)用于自動(dòng)化測(cè)試和日常管理活動(dòng)的腳本;
■ 了解如何編寫(xiě)用于文本處理、加密、解密和歸檔的腳本;
■ 處理PDF、Excel、CSV和文本文件,并生成報(bào)告;
■ 編寫(xiě)用于遠(yuǎn)程網(wǎng)絡(luò)管理(包括處理電子郵件)的腳本;
■ 使用圖形用戶(hù)界面構(gòu)建交互式工具;
■ 處理Apache日志文件,以及SOAP和REST API的通信;
■ 自動(dòng)化數(shù)據(jù)庫(kù)管理并執(zhí)行統(tǒng)計(jì)分析。
Ganesh Sanjiv Naik 是嵌入式Android、嵌入式Linux、物聯(lián)網(wǎng)和ML相關(guān)產(chǎn)品開(kāi)發(fā)的作者,顧問(wèn)和企業(yè)培訓(xùn)師。他在IT領(lǐng)域擁有20多年的經(jīng)驗(yàn)和項(xiàng)目成就。他曾擔(dān)任印度空間研究組織、英特爾、通用電氣、三星、摩托羅拉、檳城技能開(kāi)發(fā)中心以及新加坡和印度的多家公司的企業(yè)培訓(xùn)師。他創(chuàng)辦了一家名為L(zhǎng)evana Technologies的公司,該公司與各組織合作進(jìn)行咨詢(xún)和培訓(xùn)活動(dòng)。
第 1章 Python腳本編程概述 1
1.1 技術(shù)要求 2
1.2 為什么選擇Python 2
1.3 Python語(yǔ)法的優(yōu)勢(shì) 2
1.4 安裝Python 2
1.4.1 在Linux上安裝Python 2
1.4.2 在Windows上安裝Python 3
1.4.3 在Mac上安裝Python 3
1.4.4 安裝Jupyter Notebook 3
1.4.5 安裝并使用虛擬環(huán)境 4
1.4.6 安裝Geany和PyCharm 4
1.5 Python解釋器 5
1.5.1 Python和Bash有何區(qū)別 5
1.5.2 啟動(dòng)交互式控制臺(tái) 5
1.5.3 使用Python交互式控制臺(tái)編寫(xiě)腳本 5
1.5.4 多行模式 6
1.5.5 通過(guò)Python解釋器導(dǎo)入模塊 7
1.5.6 退出Python控制臺(tái) 8
1.5.7 縮進(jìn)和標(biāo)簽 8
1.5.8 變量 9
1.5.9 數(shù)值 11
1.6 字符串 13
1.6.1 連接(+)和重復(fù)(*) 14
1.6.2 字符串切片 14
1.6.3 訪問(wèn)字符串中的值 15
1.6.4 更新字符串 15
1.6.5 轉(zhuǎn)義字符 15
1.6.6 字符串的特殊運(yùn)算符 16
1.6.7 字符串格式化運(yùn)算符 16
1.6.8 Python中的三引號(hào) 17
1.6.9 字符串是不可變的 18
1.7 理解列表 18
1.7.1 訪問(wèn)列表中的值 19
1.7.2 更新列表 19
1.7.3 刪除列表元素 20
1.7.4 列表的基本操作 20
1.7.5 列表運(yùn)算符 21
1.7.6 索引、切片和矩陣 21
1.8 元組 21
1.8.1 訪問(wèn)元組的值 22
1.8.2 更新元組 23
1.8.3 刪除元組中的元素 23
1.8.4 元組的基本操作 23
1.8.5 索引、切片和矩陣 24
1.8.6 max()函數(shù)和min()函數(shù) 24
1.9 集合 25
1.10 字典 26
1.11 解析命令行參數(shù) 27
1.11.1 Python中的命令行參數(shù) 27
1.11.2 sys.argv 27
1.12 判斷語(yǔ)句 28
1.12.1 Python的if語(yǔ)句語(yǔ)法 28
1.12.2 Python的if…else語(yǔ)句語(yǔ)法 28
1.12.3 Python的if…elif…else語(yǔ)句語(yǔ)法 29
1.13 循環(huán) 30
1.13.1 for循環(huán) 30
1.13.2 range()函數(shù) 31
1.13.3 while循環(huán) 31
1.14 迭代器 32
1.15 生成器 33
1.16 函數(shù) 34
1.16.1 return語(yǔ)句 34
1.16.2 lambda函數(shù) 35
1.17 模塊 35
1.18 總結(jié) 36
1.19 問(wèn)題 37
第 2章 調(diào)試和分析Python腳本程序 38
2.1 什么是調(diào)試 38
2.2 錯(cuò)誤處理(異常處理) 39
2.3 調(diào)試工具 41
2.3.1 pdb調(diào)試器 41
2.3.2 在解釋器中運(yùn)行 42
2.3.3 在命令行中運(yùn)行 43
2.3.4 在Python腳本中使用 43
2.4 調(diào)試基本程序崩潰的方法 44
2.5 分析程序并計(jì)時(shí) 45
2.5.1 cProfile模塊 45
2.5.2 timeit模塊 46
2.6 使程序運(yùn)行得更快 47
2.7 總結(jié) 47
2.8 問(wèn)題 48
第3章 單元測(cè)試框架簡(jiǎn)介 49
3.1 什么是unittest 49
3.2 創(chuàng)建單元測(cè)試 50
3.3 單元測(cè)試中的常用方法 51
3.4 總結(jié) 53
3.5 問(wèn)題 53
第4章 自動(dòng)化常規(guī)管理活動(dòng) 54
4.1 通過(guò)重定向(redirection)、管道(pipe)和文件3種方式接收輸入 54
4.1.1 通過(guò)重定向接收輸入 55
4.1.2 通過(guò)管道接收輸入 55
4.1.3 通過(guò)文件接收輸入 56
4.2 在運(yùn)行時(shí)處理密碼 57
4.3 執(zhí)行外部命令并獲取其輸出 58
4.4 使用subprocess模塊捕獲輸出 59
4.5 在運(yùn)行時(shí)提示輸入密碼,并驗(yàn)證密碼 60
4.6 讀取配置文件 62
4.7 向腳本添加日志記錄和警告代碼 63
4.8 限制CPU和內(nèi)存的使用量 65
4.9 啟動(dòng)網(wǎng)頁(yè)瀏覽器 66
4.10 使用os模塊處理目錄和文件 67
4.10.1 創(chuàng)建目錄與刪除目錄 67
4.10.2 檢測(cè)文件系統(tǒng)的內(nèi)容 68
4.11 進(jìn)行備份(使用rsync) 68
4.12 總結(jié) 70
4.13 問(wèn)題 70
第5章 處理文件、目錄和數(shù)據(jù) 71
5.1 使用os模塊處理目錄 71
5.1.1 獲取工作目錄 72
5.1.2 更改目錄 72
5.1.3 列出文件和目錄 72
5.1.4 重命名目錄 72
5.2 復(fù)制、移動(dòng)、重命名和刪除文件 73
5.2.1 復(fù)制文件 73
5.2.2 移動(dòng)文件 74
5.2.3 重命名文件 74
5.2.4 刪除文件 74
5.3 使用路徑 75
5.4 比較數(shù)據(jù) 76
5.5 合并數(shù)據(jù) 78
5.6 用模式匹配文件和目錄 78
5.7 元數(shù)據(jù):數(shù)據(jù)的數(shù)據(jù) 79
5.8 壓縮和解壓 80
5.9 使用tarfile模塊創(chuàng)建TAR文件 81
5.10 使用tarfile模塊查看TAR文件的內(nèi)容 81
5.11 總結(jié) 82
5.12 問(wèn)題 82
第6章 文件歸檔、加密和解密 84
6.1 創(chuàng)建和解壓歸檔文件 84
6.1.1 創(chuàng)建歸檔文件 84
6.1.2 解壓歸檔文件 85
6.2 TAR歸檔文件 86
6.3 創(chuàng)建ZIP文件 89
6.4 文件加密與解密 91
6.5 總結(jié) 93
6.6 問(wèn)題 93
第7章 文本處理和正則表達(dá)式 94
7.1 文本包裝 94
7.1.1 wrap()函數(shù) 94
7.1.2 fill()函數(shù) 95
7.1.3 dedent()函數(shù) 96
7.1.4 indent()函數(shù) 97
7.1.5 shorten()函數(shù) 98
7.2 正則表達(dá)式 99
7.2.1 match()函數(shù) 101
7.2.2 search()函數(shù) 101
7.2.3 findall()函數(shù) 102
7.2.4 sub()函數(shù) 103
7.3 Unicode字符串 105
7.3.1 Unicode代碼點(diǎn) 106
7.3.2 編碼 107
7.3.3 解碼 107
7.3.4 避免UnicodeDecodeError 107
7.4 總結(jié) 108
7.5 問(wèn)題 108
第8章 文檔和報(bào)告 110
8.1 標(biāo)準(zhǔn)輸入和輸出 110
8.2 字符串格式化 113
8.3 發(fā)送電子郵件 115
8.4 總結(jié) 118
8.5 問(wèn)題 118
第9章 處理不同類(lèi)型的文件 120
9.1 處理PDF文件 120
9.1.1 讀取PDF文件并獲取頁(yè)數(shù) 121
9.1.2 提取文本 121
9.1.3 旋轉(zhuǎn)PDF頁(yè)面 122
9.2 處理Excel文件 123
9.2.1 使用xlrd模塊 123
9.2.2 使用Pandas模塊 124
9.2.3 使用openpyxl模塊 126
9.3 處理CSV文件 129
9.3.1 讀取CSV文件 129
9.3.2 寫(xiě)入CSV文件 130
9.4 處理文本文件 131
9.4.1 open()函數(shù) 131
9.4.2 close()函數(shù) 132
9.4.3 寫(xiě)入文本文件 132
9.4.4 讀取文本文件 133
9.5 總結(jié) 134
9.6 問(wèn)題 134
第 10章 網(wǎng)絡(luò)基礎(chǔ)—套接字編程 135
10.1 套接字 135
10.2 http程序包 137
10.2.1 http.client模塊 138
10.2.2 http.server模塊 140
10.3 ftplib模塊 140
10.3.1 下載文件 141
10.3.2 使用getwelcome()獲取歡迎信息 141
10.3.3 使用sendcmd()向服務(wù)器發(fā)送命令 142
10.4 urllib程序包 143
10.5 總結(jié) 144
10.6 問(wèn)題 145
第 11章 使用Python腳本處理電子郵件 146
11.1 郵件消息格式 146
11.2 添加HTML和多媒體內(nèi)容 147
11.3 POP3和IMAP服務(wù)器 150
11.3.1 使用poplib模塊接收電子郵件 150
11.3.2 使用imaplib模塊接收電子郵件 152
11.4 總結(jié) 153
11.5 問(wèn)題 154
第 12章 通過(guò)Telnet和SSH遠(yuǎn)程控制主機(jī) 155
12.1 telnetlib模塊 155
12.2 subprocess模塊 158
12.3 使用fabric模塊執(zhí)行SSH 160
12.4 使用paramiko模塊執(zhí)行SSH 161
12.5 使用netmiko模塊執(zhí)行SSH 163
12.6 總結(jié) 165
12.7 問(wèn)題 165
第 13章 創(chuàng)建圖形用戶(hù)界面 167
13.1 GUI簡(jiǎn)介 167
13.2 使用程序庫(kù)創(chuàng)建基于GUI的應(yīng)用程序 168
13.3 總結(jié) 170
13.4 問(wèn)題 171
第 14章 使用Apache及其他類(lèi)型的日志文件 172
14.1 安裝并使用Apache Logs Viewer應(yīng)用程序 172
14.2 解析復(fù)雜日志文件 174
14.3 使用異常機(jī)制的必要性 177
14.4 解析不同文件的技巧 178
14.5 錯(cuò)誤日志 178
14.6 訪問(wèn)日志 179
14.7 解析其他日志文件 180
14.8 總結(jié) 182
14.9 問(wèn)題 183
第 15章 SOAP和RESTful API通信 184
15.1 什么是SOAP 184
15.2 什么是RESTful API 185
15.3 處理JSON數(shù)據(jù) 187
15.4 總結(jié) 190
15.5 問(wèn)題 190
第 16章 網(wǎng)絡(luò)爬蟲(chóng)——從網(wǎng)站中提取有用的數(shù)據(jù) 192
16.1 什么是網(wǎng)絡(luò)爬蟲(chóng) 192
16.2 數(shù)據(jù)提取 193
16.2.1 Requests庫(kù) 193
16.2.2 BeautifulSoup庫(kù) 193
16.3 從維基百科網(wǎng)站抓取信息 197
16.4 總結(jié) 198
16.5 問(wèn)題 198
第 17章 統(tǒng)計(jì)信息的收集和報(bào)告 199
17.1 NumPy模塊 199
17.1.1 使用數(shù)組和標(biāo)量 202
17.1.2 數(shù)組索引 204
17.1.3 通用函數(shù) 207
17.2 Pandas模塊 208
17.2.1 序列 209
17.2.2 數(shù)據(jù)幀 210
17.3 數(shù)據(jù)可視化 212
17.3.1 Matplotlib 212
17.3.2 Plotly 220
17.4 總結(jié) 226
17.5 問(wèn)題 226
第 18章 MySQL和SQLite數(shù)據(jù)庫(kù)管理 228
18.1 MySQL數(shù)據(jù)庫(kù)管理 228
18.1.1 獲取數(shù)據(jù)庫(kù)版本號(hào) 231
18.1.2 創(chuàng)建表并插入數(shù)據(jù) 232
18.1.3 檢索數(shù)據(jù) 233
18.1.4 更新數(shù)據(jù) 234
18.1.5 刪除數(shù)據(jù) 235
18.2 SQLite數(shù)據(jù)庫(kù)管理 235
18.2.1 連接數(shù)據(jù)庫(kù) 236
18.2.2 創(chuàng)建表 237
18.2.3 插入數(shù)據(jù) 237
18.2.4 檢索數(shù)據(jù) 238
18.2.5 更新數(shù)據(jù) 239
18.2.6 刪除數(shù)據(jù) 240
18.3 總結(jié) 242
18.4 問(wèn)題 242