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

作者
丛书名
出版社
人民邮电出版社
ISBN
9787115523662
简要
简介
内容简介书籍计算机书籍 本书是一本介绍Python编程的进阶图书,包含了大量关于Python脚本设计的主题。本书共18章,首先带领读者快速复习Python基础知识,然后循序渐进地介绍了一些实用主题,包括Python脚本的调试和分析、编写单元测试、系统管理、处理文件和数据、文件归档以及文本处理等。然后介绍了网络编程、处理电子邮件、远程控制主机、创建图形用户界面、处理日志文件、编写网络爬虫、数据收集和可视化以及操作数据库等更加高阶的主题。本书中每一知识点都结合可以运行的源码讲解,帮助读者更好地掌握Python脚本编程。 本书要求读者具备Python的基础知识,非常适合对Python编程有基本了解并且有兴趣将编程技能扩展到命令行脚本和系统管理的读者阅读。
目录
第 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



有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4