python系统管理编程_写给系统管理员的Python脚本编程指南

第 1章  Python脚本编程概述1

1.1  技术要求2

1.2  为什么选择Python2

1.3  Python语法的优势2

1.4  安装Python2

1.4.1  在Linux上安装Python2

1.4.2  在Windows

第 1章  Python脚本编程概述1

1.1 技术要求2

1.2 为什么选择Python2

1.3 Python语法的优势2

1.4 安装Python2

1.4.1 在Linux上安装Python2

1.4.2 在Windows上安装Python3

1.4.3 在Mac上安装Python3

1.4.4 安装Jupyter Notebook3

1.4.5 安装并使用虚拟环境4

1.4.6 安装Geany和PyCharm4

1.5 Python解释器5

1.5.1 Python和Bash有何区别5

1.5.2 启动交互式控制台5

1.5.3 使用Python交互式控制台编写脚本5

1.5.4 多行模式6

1.5.5 通过Python解释器导入模块7

1.5.6 退出Python控制台8

1.5.7 缩进和标签8

1.5.8 变量9

1.5.9 数值11

1.6 字符串13

1.6.1 连接(+)和重复(*)14

1.6.2 字符串切片14

1.6.3 访问字符串中的值15

1.6.4 更新字符串15

1.6.5 转义字符15

1.6.6 字符串的特殊运算符16

1.6.7 字符串格式化运算符16

1.6.8 Python中的三引号17

1.6.9 字符串是不可变的18

1.7 理解列表18

1.7.1 访问列表中的值19

1.7.2 更新列表19

1.7.3 删除列表元素20

1.7.4 列表的基本操作20

1.7.5 列表运算符21

1.7.6 索引、切片和矩阵21

1.8 元组21

1.8.1 访问元组的值22

1.8.2 更新元组23

1.8.3 删除元组中的元素23

1.8.4 元组的基本操作23

1.8.5 索引、切片和矩阵24

1.8.6 max()函数和min()函数24

1.9 集合25

1.10 字典26

1.11 解析命令行参数27

1.11.1 Python中的命令行参数27

1.11.2 sys.argv27

1.12 判断语句28

1.12.1 Python的if语句语法28

1.12.2 Python的if…else语句语法28

1.12.3 Python的if…elif…else语句语法29

1.13 循环30

1.13.1 for循环30

1.13.2 range()函数31

1.13.3 while循环31

1.14 迭代器32

1.15 生成器33

1.16 函数34

1.16.1 return语句34

1.16.2 lambda函数35

1.17 模块35

1.18 总结36

1.19 问题37

第 2章  调试和分析Python脚本程序38

2.1 什么是调试38

2.2 错误处理(异常处理)39

2.3 调试工具41

2.3.1 pdb调试器41

2.3.2 在解释器中运行42

2.3.3 在命令行中运行43

2.3.4 在Python脚本中使用43

2.4 调试基本程序崩溃的方法44

2.5 分析程序并计时45

2.5.1 cProfile模块45

2.5.2 timeit模块46

2.6 使程序运行得更快47

2.7 总结47

2.8 问题48

第3章  单元测试框架简介49

3.1 什么是unittest49

3.2 创建单元测试50

3.3 单元测试中的常用方法51

3.4 总结53

3.5 问题53

第4章  自动化常规管理活动54

4.1 通过重定向(redirection)、管道(pipe)和文件3种方式接收输入54

4.1.1 通过重定向接收输入55

4.1.2 通过管道接收输入55

4.1.3 通过文件接收输入56

4.2 在运行时处理密码57

4.3 执行外部命令并获取其输出58

4.4 使用subprocess模块捕获输出59

4.5 在运行时提示输入密码,并验证密码60

4.6 读取配置文件62

4.7 向脚本添加日志记录和警告代码63

4.8 限制CPU和内存的使用量65

4.9 启动网页浏览器66

4.10 使用os模块处理目录和文件67

4.10.1 创建目录与删除目录67

4.10.2 检测文件系统的内容68

4.11 进行备份(使用rsync)68

4.12 总结70

4.13 问题70

第5章  处理文件、目录和数据71

5.1 使用os模块处理目录71

5.1.1 获取工作目录72

5.1.2 更改目录72

5.1.3 列出文件和目录72

5.1.4 重命名目录72

5.2 复制、移动、重命名和删除文件73

5.2.1 复制文件73

5.2.2 移动文件74

5.2.3 重命名文件74

5.2.4 删除文件74

5.3 使用路径75

5.4 比较数据76

5.5 合并数据78

5.6 用模式匹配文件和目录78

5.7 元数据:数据的数据79

5.8 压缩和解压80

5.9 使用tarfile模块创建TAR文件81

5.10 使用tarfile模块查看TAR文件的内容81

5.11 总结82

5.12 问题82

第6章  文件归档、加密和解密84

6.1 创建和解压归档文件84

6.1.1 创建归档文件84

6.1.2 解压归档文件85

6.2 TAR归档文件86

6.3 创建ZIP文件89

6.4 文件加密与解密91

6.5 总结93

6.6 问题93

第7章  文本处理和正则表达式94

7.1 文本包装94

7.1.1 wrap()函数94

7.1.2 fill()函数95

7.1.3 dedent()函数96

7.1.4 indent()函数97

7.1.5 shorten()函数98

7.2 正则表达式99

7.2.1 match()函数101

7.2.2 search()函数101

7.2.3 findall()函数102

7.2.4 sub()函数103

7.3 Unicode字符串105

7.3.1 Unicode代码点106

7.3.2 编码107

7.3.3 解码107

7.3.4 避免UnicodeDecodeError107

7.4 总结108

7.5 问题108

第8章  文档和报告110

8.1 标准输入和输出110

8.2 字符串格式化113

8.3 发送电子邮件115

8.4 总结118

8.5 问题118

第9章  处理不同类型的文件120

9.1 处理PDF文件120

9.1.1 读取PDF文件并获取页数121

9.1.2 提取文本121

9.1.3 旋转PDF页面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 写入CSV文件130

9.4 处理文本文件131

9.4.1 open()函数131

9.4.2 close()函数132

9.4.3 写入文本文件132

9.4.4 读取文本文件133

9.5 总结134

9.6 问题134

第 10章  网络基础—套接字编程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()向服务器发送命令142

10.4 urllib程序包143

10.5 总结144

10.6 问题145

第 11章  使用Python脚本处理电子邮件146

11.1 邮件消息格式146

11.2 添加HTML和多媒体内容147

11.3 POP3和IMAP服务器150

11.3.1 使用poplib模块接收电子邮件150

11.3.2 使用imaplib模块接收电子邮件152

11.4 总结153

11.5 问题154

第 12章  通过Telnet和SSH远程控制主机155

12.1 telnetlib模块155

12.2 subprocess模块158

12.3 使用fabric模块执行SSH160

12.4 使用paramiko模块执行SSH161

12.5 使用netmiko模块执行SSH163

12.6 总结165

12.7 问题165

第 13章  创建图形用户界面167

13.1 GUI简介167

13.2 使用程序库创建基于GUI的应用程序168

13.3 总结170

13.4 问题171

第 14章  使用Apache及其他类型的日志文件172

14.1 安装并使用Apache Logs Viewer应用程序172

14.2 解析复杂日志文件174

14.3 使用异常机制的必要性177

14.4 解析不同文件的技巧178

14.5 错误日志178

14.6 访问日志179

14.7 解析其他日志文件180

14.8 总结182

14.9 问题183

第 15章  SOAP和RESTful API通信184

15.1 什么是SOAP184

15.2 什么是RESTful API185

15.3 处理JSON数据187

15.4 总结190

15.5 问题190

第 16章  网络爬虫——从网站中提取有用的数据192

16.1 什么是网络爬虫192

16.2 数据提取193

16.2.1 Requests库193

16.2.2 BeautifulSoup库193

16.3 从维基百科网站抓取信息197

16.4 总结198

16.5 问题198

第 17章  统计信息的收集和报告199

17.1 NumPy模块199

17.1.1 使用数组和标量202

17.1.2 数组索引204

17.1.3 通用函数207

17.2 Pandas模块208

17.2.1 序列209

17.2.2 数据帧210

17.3 数据可视化212

17.3.1 Matplotlib212

17.3.2 Plotly220

17.4 总结226

17.5 问题226

第 18章  MySQL和SQLite数据库管理228

18.1 MySQL数据库管理228

18.1.1 获取数据库版本号231

18.1.2 创建表并插入数据232

18.1.3 检索数据233

18.1.4 更新数据234

18.1.5 删除数据235

18.2 SQLite数据库管理235

18.2.1 连接数据库236

18.2.2 创建表237

18.2.3 插入数据237

18.2.4 检索数据238

18.2.5 更新数据239

18.2.6 删除数据240

18.3 总结242

18.4 问题242

你可能感兴趣的:(python系统管理编程)