Chapter 2 Python生态工具 《Python Linux系统管理与自动化运维》
Python 生态工具工欲善其事,必先利其器,掌握主流实用工具,优点很多,可以显著提升编程效率,形成统一代码风格,通过工具自学Python,任意切换 / 管理不同工作环境等。
2.1 Python 内置小工具内置下载服务器12python -m SimpleHTTPServerpython -m http.server # python3
执行上述命令,会在当前目录下启动一个文件下载服务器,默认打开8000端口。
字符串转换为 json工作中,系统会调用底层服务的 API。底层服务的 API 一般都是以 JSON 格式返回,为了便于问题追踪,会将 API 返回的 JSON 转换为字符串记录到日志文件中。当需要分析问题时,需要将日志文件中的 JSON 字符串拿出来进行解析。即需要将一个 JSON 字符串转换为 JSON 对象,以提高日志的可读性。
1234567891011[baiyongan@bya ~]$ echo '{"address": {"province": "jiangsu", ...
Python 序列化模块——json
JSON概念JSON(JavaScript Obeject Notation) 是一种轻量级的数据交换格式,易于人阅读与编写,同时易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
前端与后端的交互,其实可以就是js 与 python 进行数据交互
json是一种通用的数据类型,任何语言都认识
接口返回的数据类型都是json
长得像字典,形式也是k-v { }
其实json是字符串
字符串不能用key、value来取值,要先转成字典才可以
JSON基本语法
JSON 名称/值对。类似于Python中的字典,注意必须用——双引号, 如 {“name” : “Python”}
JSON 值的类型。可以是数字 (整数或浮点数),字符串 (在双引号中),逻辑值 (True 或 False ),数组 (在中括号中),对象 (在大括号中),以及null。
其中的value值有:
number(int, fl ...
Chapter 1 Python语言与Linux系统管理 《Python Linux系统管理与自动化运维》
本书特色本书介绍了Python语言在Linux系统管理中的应用,包括编写Python脚本管理Linux系统,使用Python编写的自动化工具管理Linux系统,以及使用Python打造专属的管理工具等。
实战类书籍,有大量实战案例。
如何阅读本书?共11章,每一章专注于解决某一类问题,均可单独成册,择需阅读即可。
Chapter1: 为什么学Python?
Chapter2:Python的多个生态工具,解决学习Python中的环境问题。
Chapter3~7:如何用Python编写脚本管理Linux?可提高Python编程技能。
如何构建命令行工具?
如何处理文本问题?
如何进行系统管理?
如何监控Linux系统?
如何处理文档和报告?······
Chapter8~10:多个Python语言开发的工具:网络嗅探工具Scapy、自动化部署Fabric、自动部署工具Ansible,偏重运维操作。简单易用、功能强大、扩展性强,运维工程师的得力助手。
Chapter11:综合案例——Python打造MySQL的数据库专家系统,以数据库为载体,介绍了Python中的高级语言特性,和Pyth ...
Python 标准库学习路线梳理
Python 标准库常用库总结
基础必会
文件、系统:os、os.path、sys、io
目录处理:pathlib、glob、fnmatch、shutil
基本数学计算:math、random、statistics
时间、日期:time、datetime、date、timedelta、calendar
文件内容管理:filecmp、hashlib、tarfile、zipfile
综合:re、json、pickle、logging、unittest、pprint
网络:urllib、socket、http、asyncio
进阶掌握
进程、线程、协程:threading、multiprocessing、concurrent、queue、asyncio
函数式:itertools、functools
数据科学:numpy、pandas、matplotlib、seaborn、scikit-learn
数据库:pymysql、pymongo、redis、elasticsearch
应用场景
Web 开发
用户图形接口(GUI)
数值计算和科学计算
爬虫
...
Chapter5 Linux 系统管理 《Python Linux 系统管理与自动化运维》
5 Linux 系统管理
5.1 文件读写Python 内置的open函数open 函数,接受文件名和打开模式作为参数,返回一个文件对象。
‘r’ 默认读模式 不存在,则抛出FileNotFoundError 异常
‘w’ 写模式 非空,则内容被清空,不存在,则创建
‘x’ 创建新文件 已存在,则抛出FileExistsError 异常。
‘a’ 追加
三步:打开—操作—关闭
1234f = open('data.txt', 'w')f.write('hello world')f.close()
避免文件句柄泄露文件处理结束后,要及时关闭文件,文件举兵泄露可能时最常见的资源泄露问题。
方式1: finally 语句关闭句柄
12345try: f = open('data.txt') print(f.read())finally: f.close()
方法2:上下文管理器——简洁,Pythonic
12with open(& ...
Chapter 3 命令行工具《Python Linux 系统管理与自动化运维》
3 打造命令行工具在没有一个能满足需求的命令行工具时,编写一个命令行工具很重要,Python既可以当脚本语言,也可以用来编写大型服务,作为脚本语言的Python,提供了很多功能来编写命令行工具,用来替代Shell脚本,同时也有很多Python的开源项目,能够帮助我们快速构建命令行工具。
3.1 与命令行相关的Python语言使用 sys.argv 获取命令行参数sys.argv 列表,保存了所有的命令行参数,其中第一个元素时命令行程序的名称,如果有其他的命令行参数,则所有参数都以字符串的形式保存到 sys.argv 中。
1234567891011121314151617from __future__ import print_functionimport osimport sysdef main(): #为了避免直接运行程序,访问sys.argv[1] 出现索引越界的错误,添加一个空的字符串 sys.argv.append("") filename = sys.argv[1] if not os.path.isfile(filename ...
Chapter4 文本处理 《Python Linux 系统管理与自动化运维》
4 文本处理Linux下的文本处理工具有:grep、awk、sed、wc、tr、cut、cat 等。
但其限制一般有如下
1)在Windows下处理很不方便;
2)对于中文处理支持不友好;
3)大量依赖正则表达式,而RE 的学习曲线比较陡峭。
而python内嵌的字符类型包含大量的文本处理函数,标准库对文本处理提供了很好支持,此外,一些开源项目对Python处理复杂文本提供支持,如模板处理、解析xml和html的标准库和第三方库等。
so, 人生苦短,我用python ~
4.1 字符串常量定义字符串Python中不区分字符和字符串,可以使用单引号、双引号来定义字符串。
在编程语言中,使用 \ 来定义转义字符,在 URL中,使用%定义转义字符。
除了使用转义符外,还可以使用原始字符串(raw string) ,原始字符串会一直所有转义。
如:
123import ospath = r"c:\next"print(path)
多行字符串:使用三个引号定义的字符串,起止都是三个单引号或三个双引号。其中,所有的引号、换行符、制表符等特殊字符,都会被认为使普通字 ...
Python 推导式
推导式(解析式)推导式comprehensions(又称解析式),是Python的一种独有特性。
推导式是可以从一个数据序列构建另一个新的数据序列的结构体。 共有三种推导,在Python2和3中都有支持:
列表(list)推导式
字典(dict)推导式
集合(set)推导式
range() 函数python的 range() 函数可用来创建一个整数列表,一般用在 for 循环中.
range()语法:
range(start, stop[, step])
start: 计数从start开始,默认是从0开始(闭区间),如:range(5)等价于range(0,5).
stop: 计数到stop结束,但不包括stop(开区间).如:range(0,5)是[0, 1, 2, 3, 4],不包含5.
step: 步长,相邻两个值的差值,默认为1.如:range(0,5)相当于range(0, 5, 1).
列表推导式是通过一个可迭代对象来生成列表的, range()可以说是列表推导式中最常用的可迭代对象了.对列表推导式来说, range() 是其中的精髓之一. ...
Python lambda 表达式
Lambda 函数的功能及用途Lambda函数也叫匿名函数,即没有具体名称的函数,它允许快速定义单行函数,类似于C语言的宏,可以用在任何需要函数的地方。这有别于def定义的函数。
lambda与def的区别: 1)def创建的方法是有名称的,而lambda没有。 2)lambda会返回一个函数对象,但这个对象不会赋给一个标识符,而def则会把函数对象赋值给一个变量(函数名)。 3)lambda只是一个表达式,而def则是一个语句。 4)lambda表达式” : “后面,只能有一个表达式,def则可以有多个。 5)像if或for或print等语句不能用于lambda中,def可以。 6)lambda一般用来定义简单的函数,而def可以定义复杂的函数。 7)lambda函数不能共享给别的程序调用,def可以。
语法格式 lambda argument_list : expression其中,lambda是Python预留的关键字,argument_list和expression由 ...
《学习之道》摘录
见字如晤
书名: 学习之道(第2版)
作者: [美]乔希·维茨金(JoshWaitzkin)
出版年份: 2011-4
评分: 8.1
.douban-card-block {
display: flex;
justify-content: center;
align-items: center;
width: 100%;
max-height: 400px;
}
.douban-card {
display: flex;
margin: 30px 10px;
padding: 15px;
border-radius: 15px;
position: relative;
justify-c ...