在2018-19年跨年时我就暗自下定决心沉下心来做些基础工作,其中很大部分是翻译几本技术图书来夯实技能,我们总是急于追逐潮流,有时候发现变得只是概念,而不是本质。当然透过事物看清本质显然并非易事,我只能选择扩展下个人技能。截至今日我已经完成了两本图书的翻译:【已完结】最好用的免费ERP系统Odoo 12开发手册和【已完结】Learn JavaScript with p5.js中文版。虽然我很贪心,但我也给自己设置了个上限,年度内不要超过10本书,过犹不及。
第三本书我选择的是Mastering Python Scripting for System Administrators by Ganesh Sanjiv Naik,书的标题虽然是写的系统管理员,但适用于所有 Python 爱好者,因为它系统地梳理了整个 Python涉及到的点点滴滴。废话不多说,先从序言开始。
Python 在不断进化并且它的功能已经延伸到IT运维的方方面面。本书将助力你运用 Python 的最新功能编写有效的脚本和创建命令行工具(使用数据类型、循环、条件语句、函数、错误处理等等)来管理你的开发环境。本书会围绕整个开发过程,从配置和规划到自动化测试和创建不同的命令行工具。本书涵盖了基础脚本到标准库Python包使用的所有常用知识。通过本书的学习,你将了解如何基于理想的资源规划、实施和发布项目,最终创建一个大型的脚本项目。
本书适用人群
本书适于了解 Python 编程基础知识并有志于扩展编程技巧来编写命令行脚本和系统运维管理的人学习。
要求有一定有 Python 编程知识。
本书涵盖内容
第一章 Python脚本概述:涵盖Python的安装流程以及Python解释器工具的使用。读者将学习到如何为变量赋值以及对变量和字符串的介绍。你还将学习到各有序、无序数据类型,包括列表(list)、元组(tuple)、集合(set)和字典(dictionary)。同时你还将学习到如何在脚本中解析命令行选项。
第二章 Python脚本调试和性能测试:讲解如何使用调试工具来对Python程序进行调试。你还将学习如何进行错误处理,并深入性能测试(profiling)和耗时测试(timing)的概念。
第三章 单元测试-单元测试框架的介绍:本章有关 Python 中的单元测试。我们将对测试程序创建单元测试。
第四章 自动化常规运维活动:讲解如何自动化运维管理员的常规运维活动。你将学习到接收输入、处理密码、外部命令的执行、读取配置文件、为脚本添加警告信息、实现 CPU 限制、网页浏览器启动、os模块的使用以及进行备份。
第五章 文件、目录和数据处理:本章你将学习使用os模块来处理各种活动。读者会学习到数据以及应用到数据上的一些方法,如复制、剪切、合并和比较。还将学习tarfile模块及如何及使用这一模块。
第六章 文件存档、加密和解密:研究文件存档、创建存档以及TAR和ZIP包的创建。还会学到如何使用应用解压缩.tar和.zip文件。
第七章 文本处理和正则表达式:查看Python中的文本处理和正则表达式。Python中有一个很强大的称为正则表达式的库,可进行搜索和提取数据等操作。本章还将学习对文件使用正则表达式,以及如何读取和写入文件。
第八章 文档和报告:讲解如何使用Python生成文档和报告信息。将学习如何使用Python脚本来接收输入,并在输出中打印。使用 Python我们可以编写自动化信息收集的脚本。在Python中编写接收邮件的脚本也更为简单。我们还将学习如何格式化信息。
第九章 操作各类文件:本章将深入各类文件的处理,比如PDF文件、Excel和CSV文件。我们将学习使用Python来打开、编辑文件并从这些文件中读取信息。
第十章 网络基础 – Socket编程:本章将首先介绍网络基础,然后我们会学习TCP、UDP等socket。我们还将学习如何使用socket编程来通过HTTP和FTP等协议通讯和获取信息。
第十一章 使用Python脚本处理邮件:深入如何使用Python脚本来编写和发送邮件。软件编程中发送邮件是一项非常常见的任务。我们可以使用Python的smtplib模块来在Python程序中发送邮件。本章中我们还会学习到在不同服务器上发送邮件所使用的不同协议。
第十二章 使用Telnet和SSH远程监控主机:指导大家如何通过SSH协议来执行服务器上的基本配置。我们将先通过使用Telnet模块,然后使用更推荐的方法SSH来实现相同的配置。
第十三章 创建图形化用户界面:讲解使用PyQt模块来创建图形化用户界面。
第十四章 处理Apache和其它的日志文件:讲解如何处理Apache日志文件。我们还将学习日志解析应用,即识别日志消息中的不同类型。本章还将学到如何解析这些文件以及如处理多文件、监测各类异常、存储数据和生成报告。
第十五章 SOAP和REST API通讯:着重SOAP和REST的基础,以及它们之间的区别。我们还将学习SOAP API以及如何用不同的库来使用它。本章中还可学习到REST API及标准库。
第十六章 网络抓取 – 从网站上提取有用的信息:本章中讲解如何使用Python 库来从网站上提取数据。我们还将学习如何使用Python来搜索文章和源代码。
第十七章 数据收集及报表:本章是有关科学计算中使用的高级Python库的。这些库有NumPy, SciPy和Matplotlib。我们还将学习数据可视化的概念以及如何对数据制图。
第十八章 MySQL和SQLite数据库管理:本章中我们一起来看使用MySQL和SQLite的数据库管理。我们将学习这类管理的要求和设计、如何修改插件框架以及如何编写生产者(producer)和消费者(consumer)代码。
有效使用本书
我们编写这本书通过不同脚本来讲解Python编程的不同方法。但是要有效的了解这些内容,你应该:
- 有一个安装并配置好的用于测试 /调试脚本的 Linux 系统
- 理解所创建的脚本
- 知晓每个脚本的组件
- 查看这些组件如何以新的方式复用或合并
在开启本书之旅以前我们假定读者有一定程度的 Python 知识,本书中将不会涉及这些基本技能。它们包括:
- 如何安装和配置Linux系统
- 如何安装、访问和配置特定的Python IDE(虽然很多已经在大多数Linux发行版本中包含了)
- 计算机和编程的基础知识(虽然我们尽力提供一个快速的讲解)
下载示例代码
本书原作者的代码包可通过 Packt的 GitHub 仓库进行获取。如果代码有任何更新,都会在 GitHub 的仓库中进行更新。
译者配套的 GitHub 代码:https://github.com/alanhou/python-scripting
以下省略了 Packt 的各种广告,此为序言~