寫給系統管理員的 Python 腳本編程指南

Ganesh Sanjiv Naik 著

  • 寫給系統管理員的 Python 腳本編程指南-preview-1
  • 寫給系統管理員的 Python 腳本編程指南-preview-2
寫給系統管理員的 Python 腳本編程指南-preview-1

買這商品的人也買了...

商品描述

本書是一本介紹Python編程的進階圖書,包含了大量關於Python腳本設計的主題。本書共18章,首先帶領讀者快速復習Python基礎知識,然後循序漸進地介紹了一些實用主題,包括Python腳本的調試和分析、編寫單元測試、系統管理、處理文件和數據、文件歸檔以及文本處理等。然後介紹了網絡編程、處理電子郵件、遠程控制主機、創建圖形用戶界面、處理日誌文件、編寫網絡爬蟲、數據收集和可視化以及操作數據庫等更加高階的主題。本書中每一知識點都結合可以運行的源碼講解,幫助讀者更好地掌握Python腳本編程。

本書要求讀者具備Python的基礎知識,非常適合對Python編程有基本瞭解並且有興趣將編程技能擴展到命令行腳本和系統管理的讀者閱讀。

作者簡介

Ganesh Sanjiv Naik 是嵌入式Android、嵌入式Linux、物聯網和ML相關產品開發的作者,顧問和企業培訓師。他在IT領域擁有20多年的經驗和項目成就。

他曾擔任印度空間研究組織、英特爾、通用電氣、三星、摩托羅拉、檳城技能開發中心以及新加坡和印度的多家公司的企業培訓師。他創辦了一家名為Levana Technologies的公司,該公司與各組織合作進行諮詢和培訓活動。
 

目錄大綱

 

第1章Python腳本編程概述\t1
1.1技術要求\t2
1.2為什麼選擇Python\t2
1.3 Python語法的優勢\t2
1.4安裝Python\t2
1.4.1在Linux上安裝Python\t2
1.4.2在Windows上安裝Python \t3
1.4.3在Mac上安裝Python\t3
1.4.4安裝Jupyter Notebook\t3
1.4.5安裝並使用虛擬環境\t4
1.4.6安裝Geany和PyCharm\t4
1.5 Python解釋器\t5
1.5.1 Python和Bash有何區別\t5
1.5.2啟動交互式控制台\t5
1.5.3使用Python交互式控制台編寫腳本\t5
1.5.4多行模式\t6
1.5.5通過Python解釋器導入模塊\t7
1.5.6退出Python控制台\t8
1.5.7縮進和標籤\t8
1.5.8變量\t9
1.5.9數值\t11
1.6字符串\t13
1.6.1連接(+)和重複(*)\t14
1.6.2字符串切片\t14
1.6.3訪問字符串中的值\t15
1.6.4更新字符串\t15
1.6.5轉義字符\t15
1.6.6字符串的特殊運算符\t16
1.6.7字符串格式化運算符\t16
1.6.8 Python中的三引號\t17
1.6.9字符串是不可變的\t18
1.7理解列表\t18
1.7.1訪問列表中的值\t19
1.7.2更新列表\t19
1.7.3刪除列表元素\t20
1.7.4列表的基本操作\t20
1.7.5列表運算符\t21
1.7.6索引、切片和矩陣\t21
1.8元組\t21
1.8.1訪問元組的值\t22
1.8.2更新元組\t23
1.8.3刪除元組中的元素\t23
1.8.4元組的基本操作\t23
1.8.5索引、切片和矩陣\t24
1.8.6 max()函數和min()函數\t24
1.9集合\t25
1.10字典\t26
1.11解析命令行參數\t27
1.11.1 Python中的命令行參數\t27
1.11.2 sys .argv\t27
1.12判斷語句\t28
1.12.1 Python的if語句語法\t28
1.12.2 Python的if…else語句語法\t28
1.12.3 Python的if…elif…else語句語法\t29
1.13循環\t30
1.13 .1 for循環\t30
1.13.2 range()函數\t31
1.13.3 while循環\t31
1.14迭代器\t32
1.15生成器\t33
1.16函數\t34
1.16.1 return語句\t34
1.16.2 lambda函數\t35
1.17模塊\t35
1.18總結\t36
1.19問題\t37
 

第2章調試和分析Python腳本程序\t38
2.1什麼是調試\t38
2.2錯誤處理(異常處理)\t39
2.3調試工具\t41
2.3.1 pdb調試器\t41
2.3.2在解釋器中運行\t42
2.3.3在命令行中運行\t43
2.3.4在Python腳本中使用\t43
2.4調試基本程序崩潰的方法\t44
2.5分析程序併計時\t45
2.5.1 cProfile模塊\t45
2.5.2 timeit模塊\t46
2.6使程序運行得更快\t47
2.7總結\t47
2.8問題\t48
 

第3章單元測試框架簡介\t49
3.1什麼是unittest\t49
3.2創建單元測試\t50
3.3單元測試中的常用方法\t51
3.4總結\t53
3.5問題\t53
 

第4章自動化常規管理活動\t54
4.1通過重定向(redirection)、管道(pipe)和文件3種方式接收輸入\t54
4.1.1通過重定向接收輸入\t55
4.1.2通過管道接收輸入\t55
4.1.3通過文件接收輸入\t56
4.2在運行時處理密碼\t57
4.3執行外部命令並獲取其輸出\t58
4.4使用subprocess模塊捕獲輸出\ t59
4.5在運行時提示輸入密碼,並驗證密碼\t60
4.6讀取配置文件\t62
4.7向腳本添加日誌記錄和警告代碼\t63
4.8限制CPU和內存的使用量\t65
4.9啟動網頁瀏覽器\t66
4.10使用os模塊處理目錄和文件\t67
4.10.1創建目錄與刪除目錄\t67
4.10.2檢測文件系統的內容\t68
4.11進行備份(使用rsync)\t68
4.12總結\t70
4.13問題\t70
 

第5章處理文件、目錄和數據\t71
5.1使用os模塊處理目錄\t71
5.1.1獲取工作目錄\t72
5.1.2更改目錄\t72
5.1.3列出文件和目錄\t72
5.1.4重命名目錄\t72
5.2複製、移動、重命名和刪除文件\t73
5.2.1複製文件\t73
5.2.2移動文件\t74
5.2.3重命名文件\t74
5.2.4刪除文件\t74
5.3使用路徑\t75
5.4比較數據\t76
5.5合併數據\t78
5.6用模式匹配文件和目錄\t78
5.7元數據:數據的數據\t79
5.8壓縮和解壓\t80
5.9使用tarfile模塊創建TAR文件\t81
5.10使用tarfile模塊查看TAR文件的內容\t81
5.11總結\t82
5.12問題\t82
 

第6章文件歸檔、加密和解密\t84
6.1創建和解壓歸檔文件\t84
6.1.1創建歸檔文件\t84
6.1.2解壓歸檔文件\t85
6.2 TAR歸檔文件\t86
6.3創建ZIP文件\t89
6.4文件加密與解密\t91
6.5總結\t93
6.6問題\t93
 

第7章文本處理和正則表達式\t94
7.1文本包裝\t94
7.1.1 wrap()函數\t94
7.1.2 fill()函數\t95
7.1.3 dedent()函數\t96
7.1.4 indent()函數\t97
7.1.5 shorten()函數\t98
7.2正則表達式\t99
7.2.1 match()函數\t101
7.2.2 search()函數\t101
7.2.3 findall()函數\t102
7.2. 4 sub()函數\t103
7.3 Unicode字符串\t105
7.3.1 Unicode代碼點\t106
7.3.2編碼\t107
7.3.3解碼\t107
7.3.4避免UnicodeDecodeError\t107
7.4總結\t108
7.5問題\t108
 

第8章文檔和報告\t110
8.1標準輸入和輸出\t110
8.2字符串格式化\t113
8.3發送電子郵件\t115
8.4總結\t118
8.5問題\t118
 

第9章處理不同類型的文件\t120
9.1處理PDF文件\t120
9.1.1讀取PDF文件並獲取頁數\t121
9.1.2提取文本\t121
9.1.3旋轉PDF頁面\t122
9.2處理Excel文件\t123
9.2.1使用xlrd模塊\t123
9.2.2使用Pandas模塊\t124
9.2.3使用openpyxl模塊\t126
9.3處理CSV文件\t129
9.3.1讀取CSV文件\t129
9.3.2寫入CSV文件\t130
9.4處理文本文件\t131
9.4.1 open()函數\t131
9.4.2 close()函數\t132
9.4.3寫入文本文件\t132
9.4.4讀取文本文件\t133
9.5總結\t134
9.6問題\t134
 

第10章網絡基礎—套接字編程\t135
10.1套接字\t135
10.2 http程序包\t137
10.2.1 http.client模塊\t138
10.2.2 http.server模塊\t140
10.3 ftplib模塊\t140
10.3.1下載文件\t141
10.3.2使用getwelcome()獲取歡迎信息\t141
10.3.3使用sendcmd()向服務器發送命令\t142
10.4 urllib程序包\t143
10.5總結\t144
10.6問題\t145
 

第11章使用Python腳本處理電子郵件\t146
11.1郵件消息格式\t146
11.2添加HTML和多媒體內容\t147
11.3 POP3和IMAP服務器\t150
11.3.1使用poplib模塊接收電子郵件\t150
11.3.2使用imaplib模塊接收電子郵件\t152
11.4總結\t153
11.5問題\t154
 

第12章通過Telnet和SSH遠程控制主機\t155
12.1 telnetlib模塊\t155
12.2 subprocess模塊\t158
12.3使用fabric模塊執行SSH\t160
12.4使用paramiko模塊執行SSH\t161
12.5使用netmiko模塊執行SSH\t163
12.6總結\t165
12.7問題\t165
 

第13章創建圖形用戶界面\t167
13.1 GUI簡介\t167
13.2使用程序庫創建基於GUI的應用程序\t168
13.3總結\t170
13.4問題\t171
 

第14章使用Apache及其他類型的日誌文件\t172
14.1安裝並使用Apache Logs Viewer應用程序\t172
14.2解析複雜日誌文件\t174
14.3使用異常機制的必要性\t177
14.4解析不同文件的技巧\t178
14.5錯誤日誌\t178
14.6訪問日誌\t179
14.7解析其他日誌文件\t180
14.8總結\t182
14.9問題\t183
 

第15章SOAP和RESTful API通信\t184
15.1什麼是SOAP\t184
15.2什麼是RESTful API\t185
15.3處理JSON數據\t187
15.4總結\t190
15.5問題\t190
 

第16章網絡爬蟲——從網站中提取有用的數據\ t192
16.1什麼是網絡爬蟲\t192
16.2數據提取\t193
16.2.1 Requests庫\t193
16.2.2 BeautifulSoup庫\t193
16.3從維基百科網站抓取信息\t197
16.4總結\t198
16.5問題\t198
 

第17章統計信息的收集和報告\t199
17.1 NumPy模塊\t199
17.1.1使用數組和標量\t202
17.1.2數組索引\t204
17.1.3通用函數\t207
17.2 Pandas模塊\t208
17.2.1序列\t209
17.2.2數據幀\t210
17.3數據可視化\t212
17.3.1 Matplotlib\t212
17.3.2 Plotly\t220
17.4總結\t226
17.5問題\t226
 

第18章MySQL和SQLite數據庫管理\t228
18.1 MySQL數據庫管理\t228
18.1.1獲取數據庫版本號\t231
18.1.2創建表並插入數據\t232
18.1.3檢索數據\t233
18.1 .4更新數據\t234
18.1.5刪除數據\t235
18.2 SQLite數據庫管理\t235
18.2.1連接數據庫\t236
18.2.2創建表\t237
18.2.3插入數據\t237
18.2.4檢索數據\t238
18.2.5更新數據\t239
18.2.6刪除數據\t240
18.3總結\t242
18.4問題\t242