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

Book description

Python脚本编程手册,Python脚本编程指南

Key Features

  • 从基础到高级编程,全面系统地介绍Python脚本在系统管理中的作用。
  • 市场上少见的介绍将Python脚本应用于系统管理的图书。
  • 本书附有配套资源,帮助读者学以致用,将所学应用到真实场景中。

Book Description

本书是一本介绍Python编程的进阶图书,包含了大量关于Python脚本设计的主题。本书共18章,首先带领读者快速复习Python基础知识,然后循序渐进地介绍了一些实用主题,包括Python脚本的调试和分析、编写单元测试、系统管理、处理文件和数据、文件归档以及文本处理等。然后介绍了网络编程、处理电子邮件、远程控制主机、创建图形用户界面、处理日志文件、编写网络爬虫、数据收集和可视化以及操作数据库等更加高阶的主题。本书中每一知识点都结合可以运行的源码讲解,帮助读者更好地掌握Python脚本编程。

本书要求读者具备Python的基础知识,非常适合对Python编程有基本了解并且有兴趣将编程技能扩展到命令行脚本和系统管理的读者阅读。

What you will learn

  • 了解如何安装Python和调试Python脚本;
  • 了解和编写用于自动化测试和日常管理活动的脚本;
  • 了解如何编写用于文本处理、加密、解密和归档的脚本;
  • 处理PDF、Excel、CSV和文本文件,并生成报告;
  • 编写用于远程网络管理(包括处理电子邮件)的脚本;
  • 使用图形用户界面构建交互式工具;
  • 处理Apache日志文件,以及SOAP和REST API的通信;
  • 自动化数据库管理并执行统计分析。

Who this book is for

本书非常适合对Python编程有基本了解并且有兴趣将编程技巧扩展到命令行脚本和系统管理的用户。读者需要具备Python的先验知识。

Table of contents

  1. 版权信息
  2. 版权
  3. 版权声明
  4. 内容提要
  5. 前言
  6. 资源与支持
  7. 第1章 Python脚本编程概述
    1. 1.1 技术要求
    2. 1.2 为什么选择Python
    3. 1.3 Python语法的优势
    4. 1.4 安装Python
      1. 1.4.1 在Linux上安装Python
      2. 1.4.2 在Windows上安装Python
        1. 安装pip并使用pip安装软件包
      3. 1.4.3 在Mac上安装Python
      4. 1.4.4 安装Jupyter Notebook
      5. 1.4.5 安装并使用虚拟环境
      6. 1.4.6 安装Geany和PyCharm
    5. 1.5 Python解释器
      1. 1.5.1 Python和Bash有何区别
      2. 1.5.2 启动交互式控制台
      3. 1.5.3 使用Python交互式控制台编写脚本
      4. 1.5.4 多行模式
      5. 1.5.5 通过Python解释器导入模块
      6. 1.5.6 退出Python控制台
        1. 1.快捷键
        2. 2.使用quit()或exit()函数
      7. 1.5.7 缩进和标签
      8. 1.5.8 变量
        1. 创建变量并为其赋值
      9. 1.5.9 数值
        1. 数值类型的转换
    6. 1.6 字符串
      1. 1.6.1 连接(+)和重复(*)
      2. 1.6.2 字符串切片
      3. 1.6.3 访问字符串中的值
      4. 1.6.4 更新字符串
      5. 1.6.5 转义字符
      6. 1.6.6 字符串的特殊运算符
      7. 1.6.7 字符串格式化运算符
      8. 1.6.8 Python中的三引号
      9. 1.6.9 字符串是不可变的
    7. 1.7 理解列表
      1. 1.7.1 访问列表中的值
      2. 1.7.2 更新列表
      3. 1.7.3 删除列表元素
      4. 1.7.4 列表的基本操作
      5. 1.7.5 列表运算符
      6. 1.7.6 索引、切片和矩阵
    8. 1.8 元组
      1. 1.8.1 访问元组的值
      2. 1.8.2 更新元组
      3. 1.8.3 删除元组中的元素
      4. 1.8.4 元组的基本操作
      5. 1.8.5 索引、切片和矩阵
      6. 1.8.6 max()函数和min()函数
    9. 1.9 集合
    10. 1.10 字典
    11. 1.11 解析命令行参数
      1. 1.11.1 Python中的命令行参数
      2. 1.11.2 sys.argv
    12. 1.12 判断语句
      1. 1.12.1 Python的if语句语法
      2. 1.12.2 Python的if…else语句语法
      3. 1.12.3 Python的if…elif…else语句语法
    13. 1.13 循环
      1. 1.13.1 for循环
      2. 1.13.2 range()函数
      3. 1.13.3 while循环
    14. 1.14 迭代器
    15. 1.15 生成器
      1. 在Python中怎样创建生成器
    16. 1.16 函数
      1. 1.16.1 return语句
      2. 1.16.2 lambda函数
    17. 1.17 模块
      1. 导入模块
    18. 1.18 总结
    19. 1.19 问题
  8. 第2章 调试和分析Python脚本程序
    1. 2.1 什么是调试
      1. Python调试技术
    2. 2.2 错误处理(异常处理)
    3. 2.3 调试工具
      1. 2.3.1 pdb调试器
      2. 2.3.2 在解释器中运行
      3. 2.3.3 在命令行中运行
      4. 2.3.4 在Python脚本中使用
    4. 2.4 调试基本程序崩溃的方法
    5. 2.5 分析程序并计时
      1. 2.5.1 cProfile模块
      2. 2.5.2 timeit模块
    6. 2.6 使程序运行得更快
    7. 2.7 总结
    8. 2.8 问题
  9. 第3章 单元测试框架简介
    1. 3.1 什么是unittest
    2. 3.2 创建单元测试
    3. 3.3 单元测试中的常用方法
    4. 3.4 总结
    5. 3.5 问题
  10. 第4章 自动化常规管理活动
    1. 4.1 通过重定向(redirection)、管道(pipe)和文件3种方式接收输入
      1. 4.1.1 通过重定向接收输入
      2. 4.1.2 通过管道接收输入
      3. 4.1.3 通过文件接收输入
    2. 4.2 在运行时处理密码
    3. 4.3 执行外部命令并获取其输出
    4. 4.4 使用subprocess模块捕获输出
    5. 4.5 在运行时提示输入密码,并验证密码
    6. 4.6 读取配置文件
    7. 4.7 向脚本添加日志记录和警告代码
      1. 生成警告
    8. 4.8 限制CPU和内存的使用量
    9. 4.9 启动网页浏览器
    10. 4.10 使用os模块处理目录和文件
      1. 4.10.1 创建目录与删除目录
      2. 4.10.2 检测文件系统的内容
    11. 4.11 进行备份(使用rsync)
    12. 4.12 总结
    13. 4.13 问题
  11. 第5章 处理文件、目录和数据
    1. 5.1 使用os模块处理目录
      1. 5.1.1 获取工作目录
      2. 5.1.2 更改目录
      3. 5.1.3 列出文件和目录
      4. 5.1.4 重命名目录
    2. 5.2 复制、移动、重命名和删除文件
      1. 5.2.1 复制文件
      2. 5.2.2 移动文件
      3. 5.2.3 重命名文件
      4. 5.2.4 删除文件
    3. 5.3 使用路径
    4. 5.4 比较数据
    5. 5.5 合并数据
    6. 5.6 用模式匹配文件和目录
    7. 5.7 元数据:数据的数据
    8. 5.8 压缩和解压
    9. 5.9 使用tarfile模块创建TAR文件
    10. 5.10 使用tarfile模块查看TAR文件的内容
    11. 5.11 总结
    12. 5.12 问题
  12. 第6章 文件归档、加密和解密
    1. 6.1 创建和解压归档文件
      1. 6.1.1 创建归档文件
      2. 6.1.2 解压归档文件
    2. 6.2 TAR归档文件
    3. 6.3 创建ZIP文件
    4. 6.4 文件加密与解密
    5. 6.5 总结
    6. 6.6 问题
  13. 第7章 文本处理和正则表达式
    1. 7.1 文本包装
      1. 7.1.1 wrap()函数
      2. 7.1.2 fill()函数
      3. 7.1.3 dedent()函数
      4. 7.1.4 indent()函数
      5. 7.1.5 shorten()函数
    2. 7.2 正则表达式
      1. 7.2.1 match()函数
      2. 7.2.2 search()函数
      3. 7.2.3 findall()函数
      4. 7.2.4 sub()函数
    3. 7.3 Unicode字符串
      1. 7.3.1 Unicode代码点
      2. 7.3.2 编码
      3. 7.3.3 解码
      4. 7.3.4 避免UnicodeDecodeError
    4. 7.4 总结
    5. 7.5 问题
  14. 第8章 文档和报告
    1. 8.1 标准输入和输出
    2. 8.2 字符串格式化
    3. 8.3 发送电子邮件
    4. 8.4 总结
    5. 8.5 问题
  15. 第9章 处理不同类型的文件
    1. 9.1 处理PDF文件
      1. 9.1.1 读取PDF文件并获取页数
      2. 9.1.2 提取文本
      3. 9.1.3 旋转PDF页面
    2. 9.2 处理Excel文件
      1. 9.2.1 使用xlrd模块
        1. 1.读取Excel文件
        2. 2.提取列名
      2. 9.2.2 使用Pandas模块
        1. 1.读取Excel文件
        2. 2.读取Excel文件指定列
      3. 9.2.3 使用openpyxl模块
        1. 1.创建Excel文件
        2. 2.添加若干值
        3. 3.读取多个单元格
    3. 9.3 处理CSV文件
      1. 9.3.1 读取CSV文件
      2. 9.3.2 写入CSV文件
    4. 9.4 处理文本文件
      1. 9.4.1 open()函数
        1. 打开文件
      2. 9.4.2 close()函数
      3. 9.4.3 写入文本文件
      4. 9.4.4 读取文本文件
    5. 9.5 总结
    6. 9.6 问题
  16. 第10章 网络基础——套接字编程
    1. 10.1 套接字
    2. 10.2 http程序包
      1. 10.2.1 http.client模块
      2. 10.2.2 http.server模块
    3. 10.3 ftplib模块
      1. 10.3.1 下载文件
      2. 10.3.2 使用getwelcome()获取欢迎信息
      3. 10.3.3 使用sendcmd()向服务器发送命令
    4. 10.4 urllib程序包
      1. Python urllib响应头
    5. 10.5 总结
    6. 10.6 问题
  17. 第11章 使用Python脚本处理电子邮件
    1. 11.1 邮件消息格式
    2. 11.2 添加HTML和多媒体内容
    3. 11.3 POP3和IMAP服务器
      1. 11.3.1 使用poplib模块接收电子邮件
      2. 11.3.2 使用imaplib模块接收电子邮件
    4. 11.4 总结
    5. 11.5 问题
  18. 第12章 通过Telnet和SSH远程控制主机
    1. 12.1 telnetlib模块
      1. SSH
    2. 12.2 subprocess模块
    3. 12.3 使用fabric模块执行SSH
    4. 12.4 使用paramiko模块执行SSH
    5. 12.5 使用netmiko模块执行SSH
    6. 12.6 总结
    7. 12.7 问题
  19. 第13章 创建图形用户界面
    1. 13.1 GUI简介
    2. 13.2 使用程序库创建基于GUI的应用程序
    3. 13.3 总结
    4. 13.4 问题
  20. 第14章 使用Apache及其他类型的日志文件
    1. 14.1 安装并使用Apache Logs Viewer应用程序
    2. 14.2 解析复杂日志文件
    3. 14.3 使用异常机制的必要性
      1. 分析异常
    4. 14.4 解析不同文件的技巧
    5. 14.5 错误日志
    6. 14.6 访问日志
      1. 通用日志格式
    7. 14.7 解析其他日志文件
    8. 14.8 总结
    9. 14.9 问题
  21. 第15章 SOAP和RESTful API通信
    1. 15.1 什么是SOAP
      1. 使用SOAP程序库
    2. 15.2 什么是RESTful API
      1. 使用RESTful API的标准库
    3. 15.3 处理JSON数据
    4. 15.4 总结
    5. 15.5 问题
  22. 第16章 网络爬虫——从网站中提取有用的数据
    1. 16.1 什么是网络爬虫
    2. 16.2 数据提取
      1. 16.2.1 Requests库
      2. 16.2.2 BeautifulSoup库
    3. 16.3 从维基百科网站抓取信息
    4. 16.4 总结
    5. 16.5 问题
  23. 第17章 统计信息的收集和报告
    1. 17.1 NumPy模块
      1. 17.1.1 使用数组和标量
      2. 17.1.2 数组索引
        1. 索引二维数组
      3. 17.1.3 通用函数
    2. 17.2 Pandas模块
      1. 17.2.1 序列
      2. 17.2.2 数据帧
    3. 17.3 数据可视化
      1. 17.3.1 Matplotlib
        1. 1.直方图
        2. 2.散点图
        3. 3.条形图
      2. 17.3.2 Plotly
        1. 1.散点图
        2. 2.带线散点图
        3. 3.箱线图
        4. 4.等高线图
    4. 17.4 总结
    5. 17.5 问题
  24. 第18章 MySQL和SQLite数据库管理
    1. 18.1 MySQL数据库管理
      1. 18.1.1 获取数据库版本号
      2. 18.1.2 创建表并插入数据
      3. 18.1.3 检索数据
      4. 18.1.4 更新数据
      5. 18.1.5 删除数据
    2. 18.2 SQLite数据库管理
      1. 18.2.1 连接数据库
      2. 18.2.2 创建表
      3. 18.2.3 插入数据
      4. 18.2.4 检索数据
      5. 18.2.5 更新数据
      6. 18.2.6 删除数据
    3. 18.3 总结
    4. 18.4 问题

Product information

  • Title: 写给系统管理员的Python脚本编程指南
  • Author(s): Posts & Telecom Press, Ganesh Sanjiv Naik
  • Release date: February 2024
  • Publisher(s): Packt Publishing
  • ISBN: 9781835887400

You might also like

book

Java持续交付

by Daniel Bryant, Abraham Marín-Pérez

持续交付为业务的持续发展和整个软件的交付周期增加了巨大的价值,但是掌握这项技术就意味着普通开发人员要跳出舒适区,学习很多新技能。本书以实践为基础,作者Daniel Bryant和Abraham Marín-Pérez通过大量的实践指导,帮助Java开发人员掌握针对不同平台的架构设计、自动化质量保证,以及打包和部署的技巧。 你将获得一些理解核心概念的帮助,以及有助于向持续交付迁移的指导意见。 你将学会如何设计能在不同平台上持续交付Java应用程序的架构。 你将学会如何构建应用程序构件,包括胖JAR文件、虚拟机镜像,以及操作系统容器(Docker)镜像。 你将学会如何使用Jenkins、PMD和FindSecBug等持续集成工具自动化地进行代码质量检查。 你将学会如何创建一个复杂的构建管道,以及如何设计独立的部署和发布流程。 你将了解为什么功能测试和系统质量属性测试对于开发和交付非常重要。 你将学会如何在本地有效地构建和测试应用程序,以及监控生产环境中运行的应用程序。

book

编写整洁的Python代码(第2版)

by Posts & Telecom Press, Mariano Anaya

Python代码整洁之道 Key Features 介绍实现Python代码整洁应遵循的基本原则 涵盖避免由不良代码导致的效率低下以及存在诸多隐患的代码的方法 作者专业背景深厚,项目经验丰富 基于Python 3.9 Book Description 这是一本介绍如何实现Python代码整洁的书,主要介绍如何使用Python 3.9引入的新特性提升编码技能。此外,本书还介绍了以下内容:通过利用自动化工具建立高效的开发环境,利用Python中的魔法方法来编写更好的代码,抽象代码复杂性并封装细节,使用Python特有的特性创建高级的面向对象设计,通过使用面向对象设计的软件工程原则创建强大的抽象来消除代码重复,使用装饰器和描述符创建特定于Python的解决方案,运用单元测试方法有效重构代码,以及通过实现整洁的代码库为构建坚实的架构打下基础等。 本书对新手程序员和有经验的程序员同样适用,也适合想通过编写Python代码来节省成本和提高效率的团队领导、软件架构师和高级软件工程师参考。当然在阅读本书前,读者应掌握一些Python基础知识。 What you will …

book

Python和NLTK实现自然语言处理

by Posts & Telecom Press, Nitin Hardeniya

使用Python实现NLP项目的大量实践经验 Key Features NLTK是自然语言处理领域中非常受欢迎和广泛使用的Python库。 Book Description NLTK是自然语言处理领域中非常受欢迎和广泛使用的Python库。NLTK的优点在于其简单性,其中大多数复杂的自然语言处理任务使用几行代码即可完成。本书旨在讲述如何用Python和NLTK解决各种自然语言处理任务并开发机器学习方面的应用。本书介绍了NLTK的基本模块,讲述了采用NLTK实现自然语言处理的大量技巧,讨论了一些文本处理方法和语言处理技术,展示了使用Python实现NLP项目的大量实践经验。本书主要内容包括文本挖掘/NLP任务中所需的所有预处理步骤,如何使用Python 3的NLTK 3进行文本处理,如何通过Python开展NLP项目。 本书适合NLP和机器学习领域的爱好者、Python程序员以及机器学习领域的研究人员阅读。 本书包括以下主要内容 • 使用词性标注和分块的方法对文本进行整理与清洗。 • 把文本标记为句子,把句子标记为单词。 • …

book

Java数据科学实战

by Michael R. Brzustowicz, PhD

数据科学近年来迅速成为了热门研究领域,但很少有数据科学从业人士冒险涉足Java世界。考虑到在工程与科学的交叉地带所需的可伸缩性、稳健性以及便利性,Java其实是一门理想的语言。本书将循序渐进地引导读者进入数据科学的工作流程,在解释数学原理的同时给出代码示例。书中解释了数据科学流程每一步背后的基本数学原理,以及如何采用Java来应用这些原理。 本书内容涉及数据输入与输出、线性代数、统计学、数据操作、学习与预测,以及Hadoop MapReduce在这个过程中所扮演的关键角色。 讨论获取数据、清理数据,以及以纯粹方式排列数据的众多方法 理解数据应采用的矩阵结构 学习测试数据来源及数据有效性的基本概念 把数据转换为稳定且可用的数值 理解监督型学习算法与无监督型学习算法,以及评估这些算法是否成功的方法 采用适合数据科学算法的定制组件,设置和运行MapReduce任务