Python

Python 学习大纲

·13 分钟阅读·4839 字

Python 系统化学习路线——基础语法、脚本编写、工程化、应用开发、运维自动化

📋 目录

Python 学习大纲

Python 系统化学习路线——面向运维工程师,从基础到工程化再到应用开发。


一、整体学习思路

运维学 Python 核心目标:替代 Shell、批量操作、自动化运维、日志分析、监控告警、平台开发
学习顺序:Python 基础语法 → 运维专属语法/工具 → 系统&网络编程 → 运维常用库 → 实战脚本 → 进阶自动化/Web 运维平台
不深究复杂算法、面向对象高级特性、前端等,重实操、重脚本、重业务落地


二、第一阶段:Python 基础(必学,1~2 周)

目标:能独立写简单脚本,看懂现有代码,替代简单 Shell。

1. 环境准备

  1. 系统环境:Linux 主流预装 Python3,学会区分 python/python3pip/pip3
  2. 编辑器:vim / VS Code(远程连接 Linux)
  3. 运行方式:交互式执行、脚本文件执行、后台运行、定时执行(结合 crontab

2. 核心语法(运维只学高频)

(1)基础数据类型与变量

  • 字符串(运维最高频):拼接、截取、替换、分割、转义、正则前置基础
  • 数字、布尔值
  • 列表 list、字典 dict(核心容器,存主机信息、配置、接口返回数据)
  • 元组、集合(了解即可)

(2)流程控制

  • 分支:if / elif / else(判断状态、返回码、文件是否存在)
  • 循环:for(遍历主机、文件、日志、列表)、while(循环重试、持续监听)
  • 关键字:break / continue

(3)函数

  • 函数定义 def、参数、返回值
  • 作用:代码复用(批量执行命令、封装检查逻辑)
  • 不用深究:装饰器、闭包、高阶函数(后期进阶再看)

(4)异常处理(运维脚本必备)

try...except...finally
作用:脚本容错,避免单台主机报错导致整个批量任务中断。

(5)模块与包

  • import 导入内置模块、第三方库
  • 理解:模块 = 功能文件,库 = 工具合集

3. 基础实操练习(立刻上手)

  1. 变量、字符串处理:截取 IP、端口、日志关键字
  2. 循环遍历:遍历主机列表、遍历日志文件行
  3. 简单判断:判断文件是否存在、服务状态码、端口是否监听
  4. 函数封装:封装“执行命令”“检查服务”通用函数
  5. 异常捕获:命令执行失败不退出脚本

三、第二阶段:Linux 系统运维核心(重中之重,2~3 周)

Python 操作 Linux 文件、进程、命令、路径、权限,完全对标日常运维工作,是脚本主力。

1. 文件与目录操作(90% 运维脚本都会用到)

内置模块:osos.pathshutil

必学功能

  • 路径拼接、判断文件/目录是否存在
  • 遍历目录、递归遍历目录(查找日志、配置文件)
  • 创建/删除/重命名 文件、目录
  • 文件读写:open() 读写文本/日志、按行读取大文件(日志分析核心)
  • 复制、移动文件/文件夹
  • 获取文件大小、修改时间、权限

运维场景

日志切割、配置文件备份、批量修改配置、文件巡检。

2. 执行 Shell 命令(核心能力)

内置模块:subprocess首选,替代老旧 os.system / os.popen

必学功能

  1. 本地执行 Linux 命令:df -hps -efsystemctl statusnetstat
  2. 获取命令返回码、标准输出、标准错误(判断命令执行成功/失败)
  3. 管道、后台执行、超时控制(防止脚本卡死)
  4. 调用 Shell 脚本、传递参数

运维场景

批量查看磁盘、内存、进程、端口;启停服务;执行运维命令。

3. 进程、用户、系统信息

内置模块:psutil(第三方,运维神器,必须装)

必学功能

  • 获取 CPU、内存、磁盘、网络使用率
  • 查找进程、杀死进程、判断进程是否运行
  • 获取系统负载、开机时长、用户信息

运维场景

服务器资源巡检、进程守护、简易监控脚本。

4. 时间与日期处理

内置模块:timedatetime

必学功能

  • 获取当前时间、时间格式化(日志时间、脚本日志输出)
  • 时间运算:时间差、定时判断、日志时间筛选
  • 时间戳转换(日志、监控数据常用)

5. 正则表达式(日志/文本处理必备)

内置模块:re

必学语法(运维够用即可,不用学全)

  • 匹配数字、IP、端口、URL、日志关键字
  • 提取字符串、替换内容、按规则过滤日志行

场景

日志过滤、日志关键字提取、批量解析配置、文本清洗。


四、第三阶段:网络运维 & 批量运维(核心自动化,2~3 周)

面向多服务器批量管理、远程执行、端口检测、接口调用,对应批量运维、堡垒机、自动化上线场景。

1. 远程连接 Linux 主机(高频)

第三方库:paramikonetmiko(网络设备/交换机)

必学功能(paramiko 为主)

  • SSH 远程登录主机(账号密码 / 密钥登录,生产优先密钥
  • 远程执行命令、批量在多台机器执行命令
  • 远程上传/下载文件(批量分发配置、脚本、包)
  • 异常处理、连接超时

场景

批量巡检、批量启停服务、批量下发配置、批量上传文件。

2. 端口、网络检测

  • 内置 socket:检测主机端口是否开放(80、9092、22 等)
  • 批量端口扫描、主机存活探测

3. 网络请求 & API 调用

第三方库:requests(运维第一网络库,必学)

必学功能

  • 发送 GET/POST 请求(调用监控平台、CMDB、接口、告警接口)
  • 解析 JSON 格式返回数据
  • 超时、重试、请求头、证书忽略

场景

对接运维平台、推送告警、获取主机资产、调用中间件 API(Kafka、Redis、MySQL 接口)

4. 数据格式解析

运维标配两种格式:

  1. JSON:内置 json 模块(接口返回、配置文件主流格式)
  • json ↔ 字典 相互转换
  1. YAML:第三方 pyyaml(Ansible、K8s、Docker 配置文件)
  • 读取、解析、修改 YAML 配置

五、第四阶段:中间件 & 数据库运维(按需学习,看业务栈)

如果你日常维护 MySQL、Redis、Kafka、ELK 等,针对性学习对应客户端库,纯主机运维可暂缓。

1. 数据库

MySQL / MariaDB

库:pymysql

  • 连接数据库、执行 SQL(查询状态、慢日志、巡检数据)
  • 增删改查、批量查询

Redis

库:redis-py

  • 连接、查询 Key、监控内存、状态查看

2. 消息队列 & 大数据

Kafka

库:kafka-python / confluent-kafka

  • 连接集群、查看 Topic、分区、偏移量
  • 简单生产/消费消息、监控消息堆积

3. 日志 & 检索

  • elasticsearch 库:对接 ES 查询日志、统计日志量

4. 容器 & 云原生(当下运维主流)

Docker

库:docker SDK

  • 操作容器、镜像、查看状态、启停容器

K8s

库:kubernetes 官方 SDK

  • 操作 Pod、Deployment、Service、查询集群资源、批量管理

六、第五阶段:高级能力 & 工程化(进阶,自动化/运维平台方向)

适合想从脚本运维转向自动化运维开发、运维平台开发的人员。

1. 并发/并行(批量任务提速)

批量操作上百台主机时,串行执行太慢,必须学:

  • 多线程 threading / 线程池 concurrent.futures.ThreadPoolExecutor运维首选,IO 密集型任务:SSH、网络请求)
  • 多进程(了解即可,CPU 密集才用,运维很少)

2. 日志模块

内置 logging:规范脚本日志输出(分级、日志文件、轮转)
替代 print,生产脚本必备。

3. 命令行参数

内置 argparse:给脚本加命令行参数,类似 ls -l,让脚本可灵活传参。
例:python check_server.py --host 192.168.1.100 --port 9092

4. 定时任务结合

Python脚本 + crontab 实现定时巡检、定时备份、定时清理日志。

5. 简单 Web 运维平台(可选)

想做简易后台、资产管理、运维工具页面:

  • 轻量框架:Flask(简单易上手,运维首选)
  • 不用学 Django(太重,业务开发用)

6. 结合 Ansible(强强联合)

两种用法:

  1. Python 调用 Ansible API,批量执行 Playbook/Role
  2. 用 Python 写 Ansible 自定义模块

七、运维 Python 必装第三方库清单(按优先级排序)

# 基础系统监控
pip3 install psutil

# 远程 SSH 批量运维
pip3 install paramiko

# 网络请求、调用接口
pip3 install requests

# 解析 yaml(Ansible/K8s 必备)
pip3 install pyyaml

# 数据库
pip3 install pymysql redis

# Kafka 运维
pip3 install kafka-python

# Docker SDK
pip3 install docker

# 并发线程池(批量任务加速)
# 内置库,无需安装:concurrent.futures

八、分阶段实战脚本案例(学完就练,循序渐进)

入门级(基础语法)

  1. 批量遍历目录,统计日志文件行数
  2. 判断指定服务端口是否监听
  3. 读取配置文件,提取 IP 和端口

进阶级(系统+命令)

  1. 服务器资源巡检脚本(CPU/内存/磁盘/负载)
  2. 批量清理过期日志文件
  3. 监控关键进程,挂掉自动重启

自动化级(批量+远程)

  1. 多主机批量执行命令(查看磁盘、版本)
  2. 批量远程下发配置文件
  3. 端口批量扫描脚本
  4. 日志关键字告警脚本(匹配错误日志,调用接口发告警)

中高级(中间件/云原生)

  1. MySQL 慢查询巡检、状态监控
  2. Kafka 分区、偏移量、消息堆积监控脚本
  3. Docker 容器批量状态巡检
  4. 对接 CMDB 接口,自动同步主机资产

九、学习避坑 & 运维专属建议

  1. 不要像开发一样深挖不用学:复杂算法、设计模式、类的高级用法、异步 asyncio(除非做高并发网关)、前端、大数据底层。
    一切围绕 “运维工作提效”
  2. 优先替代 Shell
    把日常重复 Shell 脚本改成 Python,边改边学,进步最快。
  3. 脚本三大原则(生产规范)
  • 加异常捕获:避免批量任务一台报错全停
  • 加日志:不用 print,用 logging
  • 加超时:SSH、命令、网络请求都设置超时,防止卡死
  1. Linux 是根基
    Python 只是工具,Linux 命令、服务、网络、中间件原理必须熟练,否则脚本写出来也不会用。
  2. 结合你之前学的技术
    可以写 Python 脚本监控 Kafka 状态、网络连接、Socket 连接数,学以致用。

十、最简学习路线总结(背诵版)

  1. 第一阶段:Python 基础语法 + 异常 + 函数(会写简单脚本)
  2. 第二阶段:文件/目录 + subprocess 执行命令 + psutil 系统监控 + 正则(本地运维脚本)
  3. 第三阶段:paramiko 远程 SSH + requests 接口 + JSON/YAML 解析(批量自动化)
  4. 第四阶段:按需学习 MySQL/Redis/Kafka/Docker 客户端库(中间件运维)
  5. 第五阶段:线程池并发 + logging + argparse + Flask(进阶自动化/运维平台)

关联文档

  • Shell 基础 — Shell 脚本对比
  • 20-areas/cloud-native/linux/system/Linux 基础 — Linux 系统管理