复(*)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.8Python中的三引号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.6max()函数和min()函数24
1.9集合25
1.10字典26
1.11解析命令行参数27
1.11.1Python中的命令行参数27
1.11.2sys.argv27
1.12判断语句28
1.12.1Python的if语句语法28
1.12.2Python的if…else语句语法28
1.12.3Python的if…elif…else语句语法29
1.13循环30
1.13.1for循环30
1.13.2range()函数31
1.13.3while循环31
1.14迭代器32
1.15生成器33
1.16函数34
1.16.1return语句34
1.16.2lambda函数35
1.17模块35
1.18总结36
1.19问题37
第2章 调试和分析Python脚本程序38
2.1什么是调试38
2.2错误处理(异常处理)39
2.3调试工具41
2.3.1pdb调试器41
2.3.2在解释器中运行42
2.3.3在命令行中运行43
2.3.4在Python脚本中使用43
2.4调试基本程序崩溃的方法44
2.5分析程序并计时45
2.5.1cProfile模块45
2.5.2timeit模块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.2TAR归档文件86
6.3创建ZIP文件89
6.4文件加密与解密91
6.5总结93
6.6问题93
第7章 文本处理和正则表达式94
7.1文本包装94
7.1.1wrap()函数94
7.1.2fill()函数95
7.1.3dedent()函数96
7.1.4indent()函数97
7.1.5shorten()函数98
7.2正则表达式99
7.2.1match()函数101
7.2.2search()函数101
7.2.3findall()函数102
7.2.4sub()函数103
7.3Unicode字符串105
7.3.1Unicode代码点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.1open()函数131
9.4.2close()函数132
9.4.3写入文本文件132
9.4.4读取文本文件133
9.5总结134
9.6问题134
第10章 网络基础—套接字编程135
10.1套接字135
10.2http程序包137
10.2.1http.client模块138
10.2.2http.server模块140
10.3ftplib模块140
10.3.1下载文件141
10.3.2使用getwelcome()获取欢迎信息141
10.3.3使用sendcmd()向服务器发送命令142
10.4urllib程序包143
10.5总结144
10.6问题145
第11章 使用Python脚本处理电子邮件146
11.1邮件消息格式146
11.2添加HTML和多媒体内容147
11.3POP3和IMAP服务器150
11.3.1使用poplib模块接收电子邮件150
11.3.2使用imaplib模块接收电子邮件152
11.4总结153
11.5问题154
第12章 通过Telnet和SSH远程控制主机155
12.1telnetlib模块155
12.2subprocess模块158
12.3使用fabric模块执行SSH160
12.4使用paramiko模块执行SSH161
12.5使用netmiko模块执行SSH163
12.6总结165
12.7问题165
第13章 创建图形用户界面167
13.1GUI简介167
13.2使用程序库创建基于GUI的应用程序168
13.3总结170
13.4问题171
第14章 使用Apache及其他类型的日志文件172
14.1安装并使用ApacheLogsViewer应用程序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和RESTfulAPI通信184
15.1什么是SOAP184
15.2什么是RESTfulAPI185
15.3处理JSON数据187
15.4总结190
15.5问题190
第16章 网络爬虫——从网站中提取有用的数据192
16.1什么是网络爬虫192
16.2数据提取193
16.2.1Requests库193
16.2.2BeautifulSoup库193
16.3从维基百科网站抓取信息197
16.4总结198
16.5问题198
第17章 统计信息的收集和报告199
17.1NumPy模块199
17.1.1使用数组和标量202
17.1.2数组索引204
17.1.3通用函数207
17.2Pandas模块208
17.2.1序列209
17.2.2数据帧210
17.3数据可视化212
17.3.1Matplotlib212
17.3.2Plotly220
17.4总结226
17.5问题226
第18章 MySQL和SQLite数据库管理228
18.1MySQL数据库管理228
18.1.1获取数据库版本号231
18.1.2创建表并插入数据232
18.1.3检索数据233
18.1.4更新数据234
18.1.5删除数据235
18.2SQLite数据库管理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