iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python运维开发笔记4
  • 874
分享到

python运维开发笔记4

笔记python 2023-01-31 00:01:07 874人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1.函数如何被调用,通过return返回值来调用2.生成器和return区别yield 生成器返回对象,可以迭代可以执行glob模块 类似shell中的正则匹配shlex模块  Popen 将命令参数直接分词cmd = "ps ax -o

1.函数如何被调用,通过return返回值来调用

2.生成器和return区别

yield 生成器返回对象,可以迭代

可以执行


glob模块 类似shell中的正则匹配

shlex模块  Popen 将命令参数直接分词

cmd = "ps ax -o pid,ppid,cmd"

shlex.split(cmd)

['ps','ax','-o','pid,ppid,cmd']

['Mysql','-u','root','-p123','-e','show processlist']

p = Popen(shlex.split(cmd),stdout=PIPE)

p.communicate()

('',None)

代替

p.stdin.write()

p.stdin.close()

p.stdout.read()


p.terminate()#终止执行

p = Popen(['sleep','10'],stdout=PIPE)

p.pid

kill -HUP

HUP(1) 是让进程挂起,睡眠;

kill(9) 六亲不认的杀掉

term(15) 正常的退出进程

因为进程可能屏蔽某些信号,所以它们的用处也就不一样i


内核产生的2,是用户产生的1

列表变成字符串  ''.join(s[2:])

字符串变成列表  s.split()


搜集主机信息

devname

Macaddr

ipaddr


字符串换行符  split,列表最后一个元素为空

[i.strip() for i in data.split('\n') if i]


定义函数的参数是需要传值的


正则表达式

re模块

分析日志,提取信息

普通字符

元字符:

. 除了换行符\n

^  

* 前面的字母出现0次或者n次

{} 数字

[] 字符串

() 分组

\  转义符号

|  或

import re

p = re.compile('ab*')

re.match

re.match 尝试从字符串的开始匹配一个模式,如:下面的例子匹配第一个单词。 


import re

text = "JGood is a handsome boy, he is cool, clever, and so on..."

m = re.match(r"(\w+)\s", text)

if m:

print m.group(0), '\n', m.group(1)

else:

print 'not match'  


re.match的函数原型为:re.match(pattern, string, flags)


第一个参数是正则表达式,这里为"(\w+)\s",如果匹配成功,则返回一个Match,否则返回一个None;


第二个参数表示要匹配的字符串;


第三个参数是标致位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。


re.search

re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。


import re

text = "JGood is a handsome boy, he is cool, clever, and so on..."

m = re.search(r'\shan(ds)ome\s', text)

if m:

print m.group(0), m.group(1)

else:

print 'not search'  


re.search的函数原型为: re.search(pattern, string, flags)

每个参数的含意与re.match一样。 


re.match与re.search的区别:re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

 

re.sub

re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' :  


import re

text = "JGood is a handsome boy, he is cool, clever, and so on..."

print re.sub(r'\s+', '-', text) 

re.sub的函数原型为:re.sub(pattern, repl, string, count)


其中第二个函数是替换后的字符串;本例中为'-'


第四个参数指替换个数。默认为0,表示每个匹配项都替换。


re.sub还允许使用函数对匹配项的替换进行复杂的处理。如:re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0);将字符串中的空格' '替换为'[ ]'。


re.split

可以使用re.split来分割字符串,如:re.split(r'\s+', text);将字符串按空格分割成一个单词列表。


re.findall

re.findall可以获取字符串中所有匹配的字符串。如:re.findall(r'\w*oo\w*', text);获取字符串中,包含'oo'的所有单词。


re.compile

可以把正则表达式编译成一个正则表达式对象。可以把那些经常使用的正则表达式编译成正则表达式对象,这样可以提高一定的效率


re.S

re.I

re.M

re.I|re.M|re.S

re.I:忽略大小写

re.L:表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境

re.M:多行模式

re.S:’ . ’并且包括换行符在内的任意字符(注意:’ . ’不包括换行符)

re.U: 表示特殊字符集 \w, \W, \b, \B, \d, \D, \s, \S 依赖于 Unicode 字符属性数据库

 

re.findall(r'[gG].d',s1,re.s)

reg = re.compile(r'[gG].d',re.s)


p = r'[0-9a-zA-Z_]{1,16}@[0-9a-zA-Z_-]{1,}\.[a-zA-Z]{2,3}'#匹配邮箱地址


python正则匹配html标签

设计3个需求:

1. 取<script> </script>标签之间的内容。

>>> re.findall('<script>([\s\S]*?)</script>', s)

[" alert('test') "]


2. 取包含<script ...></script>标签以及之间的内容。

>>> re.findall('<script[\s\S]*?</script>', s)

['<script type="text/javascript" src="/scripts/Jquery.js"></script>', "<script> alert('test') </script>"]


3. 取<script> </script>标签之外所有的内容。

>>> re.sub('<script[\s\S]*?</script>', '', s)

'\n<html>\n<head>\n<title>This is title</title>\n\n</head>\n<body>\n<h1>hello world!</h1>\n\n</body>\n</html>\n'

>>> re.subn('<script[\s\S]*?</script>', '', s)

('\n<html>\n<head>\n<title>This is title</title>\n\n</head>\n<body>\n<h1>hello world!</h1>\n\n</body>\n</html>\n', 2)


匹配IP,MAC,IFNAME


作业 

1./proc  status  cmdline  实现'pid'  'ppid'  'cmd'

2.统计所有Httpd进程占用物理内存多少,物理内存比例是多少   status中VmRSS  apache的内存值

/proc/meminfo 总的内存


取得http所有的pid号,依次取得进程号下所有的VmRSS的值

#ps -e 

#正则过滤 httpd pid号

#用pid号找内存

#正则过滤出apache内存的值 

for循环得出总的apache的内存值

计算公式除meminfo的内存 Memtotal的值


TypeError: expected string or buffer

原因:re_h=re.compile('</?\w+[^>]*>')

         s=re_h.sub('',str)


         传入的str是list变量导致出错


解决办法:传入str类型变量

--结束END--

本文标题: python运维开发笔记4

本文链接: https://www.lsjlt.com/news/182825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python运维开发笔记4
    1.函数如何被调用,通过return返回值来调用2.生成器和return区别yield 生成器返回对象,可以迭代可以执行glob模块 类似shell中的正则匹配shlex模块  Popen 将命令参数直接分词cmd = "ps ax -o ...
    99+
    2023-01-31
    笔记 python
  • Python爬虫笔记4-Beautif
    BeautifulSoup介绍 与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据。 几种解析工具的对比 工具 速度 难度 正则表达式 最快 困难 ...
    99+
    2023-01-31
    爬虫 笔记 Python
  • Python学习笔记4——函数
    函数 1 # 函数需要先定义,关键字 def 2 def func(): 3 print("我是一个函数") 4 5 # 函数的调用 6 func() 执行结果: 我是一个函数 内建函数(内置函数) help(), prin...
    99+
    2023-01-30
    函数 学习笔记 Python
  • Python 学习笔记 (4)—— 模块
           模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。        模块可以从其他程序 输入 以便利用它的功能。这也是我们使用Python标准库的方法。首先,我们...
    99+
    2023-01-31
    学习笔记 模块 Python
  • [运维|中间件] Apache APISIX使用笔记
    简介 Apache APISIX 是一个动态、实时、高性能的云原生 API 网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。 文档 官方文档地址 安装 快速...
    99+
    2023-09-16
    运维 中间件 笔记
  • 运维的我要学开发--Python(3)
       本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示。#-*- coding: utf-8 -*-...
    99+
    2023-01-31
    我要学 Python
  • Python运算符(Python学习笔记
    ...
    99+
    2023-01-30
    学习笔记 运算符 Python
  • DLNA&UPnP开发笔记(3)
    由前两篇文章我们了解了DLNA和UPnP协议的基础概念,本文主要介绍一下开发DLNA&UPnP应用的SDK和代码资源。1.  搭建测试环境由第二篇文章中,UPnP AV典型应用架构中,我们知道,要实现一个完整的应用,需要三个主体,一...
    99+
    2023-01-31
    笔记 DLNA UPnP
  • Python开发【笔记】:从海量文件的目
    Python获取文件名的方法性能对比   前言:平常在python中从文件夹中获取文件名的简单方法   os.system('ll /data/')   但是当文件夹中含有巨量文件时,这种方式完全是行不通的;   在/dd目录中生成了近6...
    99+
    2023-01-31
    海量 文件 笔记
  • 《Flask Web开发》学习笔记
      前言:想熟练掌握一门web框架,为以后即将诞生的测试工具集做准备。为什么选择flask要做熟练掌握的一门框架,而不是其他的,最主要的原因是可以随意定制。   特别提醒:这本书的代码会提交在github,有基础的人可以直接看githu...
    99+
    2023-01-30
    学习笔记 Flask Web
  • python学习笔记(python发展介
    一、python介绍python的创始人为吉多·范罗苏姆(Guido van Rossum)目前python主要应用领域:·云计算·WEB开发·科学运算、人工智能·系统运维·金融:量化交易,金融分析等,作为动态语言的python,语言结构清...
    99+
    2023-01-31
    学习笔记 python
  • Web 开发学习笔记(1) --- 搭
    简介 Flask 是一个轻量级的 Web 框架, 如果要学习 Web 开发, Flask 非常适合作为我们学习的起点. 通过接下来的这一些列的博客, 我们将学习如何利用 Flask 以及其他工具, 搭建一个简单的网站. We'll bu...
    99+
    2023-01-31
    学习笔记 Web
  • [开发]Python实现运维监控服务器硬
          今天通过使用Python开发针对服务器硬件运行状态的监控,简单了解下在虚拟环境中的运维监控的实现,算是给全面研究云计算开一个头。 1.先准备环境,软件配置如下: 虚拟环境:     Vmware 10 操作系统:     L...
    99+
    2023-01-31
    服务器 Python
  • Web 开发学习笔记(3) --- 申
    简介 现在已经进入 HTTPS 的时代, HTTPS 证书 目前应用广泛, 发展迅速. 相较于明文传输的 HTTP, HTTPS 更加安全. HTTPS 即 Hypertext Transfer Protocol Secure, ...
    99+
    2023-01-31
    学习笔记 Web
  • Python入门学习笔记4:他人的博客及
    看其他人的学习笔记,可以保证自己不走弯路。并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e5...
    99+
    2023-01-30
    学习笔记 入门 博客
  • Go API学习笔记必备:二维码在开发中的应用
    二维码技术是一种常用的信息编码方式,它能够将文本、网址、图片等信息编码成一张方便快捷的二维码图案,方便用户进行扫描、解码。在移动互联网时代,二维码越来越受到人们的关注和使用,因此在Go API学习笔记中,掌握二维码技术的应用是非常必要的。 ...
    99+
    2023-10-30
    api 学习笔记 二维码
  • 云计算开发技术Python自动化运维开发实战二
    云计算开发技术Python方面的知识少不了,Python编程博大精深,知识点众多,需要先整体上了解python的一些基本用法之后再去对每一个知识点细细研究,这样学习的速度会快很多。所以下面就先看一些python事先需要知道的基本知识。交互模...
    99+
    2023-06-03
  • 如何理解Python运维开发中的Flask框架
    如何理解Python运维开发中的Flask框架,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。相信曾经纠结过这个问题:怎样才能彻底掌握flaskFlask是一个使用 Pyth...
    99+
    2023-06-17
  • 云计算开发技术,Python自动化运维开发实战三部分
    导语:python常用的有3种文件类型 源代码    py 字节代码 pyc 优化代码 pyo源代码:python源代码的文件以”py"为扩展名,由python程序解释,...
    99+
    2023-06-04
  • 运维开发中有哪些问题
    这篇文章主要介绍了运维开发中有哪些问题的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇运维开发中有哪些问题文章都会有所收获,下面我们一起来看看吧。运维工作中只要牵扯到运维开发,要去推动这件事情势必会有几类问题需要...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作