分享一个提高运维效率的 Python 脚本

python自动化脚本的应用实例分享系列一:进度统计脚本 场景 小T负责运维一个业务系统,并辅助做一些运营工作。每个月要从两个不同的系统中找到填报单位的填报状态(已提交,未提交),按照特定的表样和顺序录入到excel表,然后发送到微信群里。 分析 小T每月都手动统计两个系统中各个填报单位的状态,耗时耗力,重复性工作,可以通过自动化脚本实现自动化抓取数据,因此从两个系统的web页面上自动抓取所需数据是程序的主体。 系统中各个公司填报状态页面集中在一个web页面中,小T希望在发送进度统计表在微信群前,先人工核对下程序结果是否正确。可以考虑程序设计中有截图功能, 阅读详情

哈喽大家好我是咸鱼,今天给大家分享一个能够提升运维效率的 python 脚本

咸鱼平常在工作当中通常会接触到下面类似的场景:

  1. 容灾切换的时候批量对机器上的配置文件内容进行修改替换

  2. 对机器批量替换某个文件中的字段

对于 Linux 机器,咸鱼可以写个 shell 脚本或者直接批量使用 sed 命令就能很好地解决

但对于 Windows 机器,上面的方法就不管用了,我们就需要想其他的办法

这里咸鱼给大家分享一个由 python 编写的脚本,这个脚本能够去替换指定文本文件中的指定内容,而且还能一次替换多个内容

我们先看效果,目标文件:name.txt

图片

  • 修改一个内容

图片

  • 修改多个内容

图片

图片

源码在文末哦!****

首先我们导入模块

图片

然后我们来看一下脚本中的第一个函数——data_preprocess()

图片

这个函数实现的功能是接收输入的参数(目标文件名、要替换的内容,替换的内容、字符编码格式),然后将要替换的内容与替换的内容分别转换成列表形式

注意:替换多个内容时在多个内容之间用逗号隔开

例如我们敲如下命令替换一个内容:

python sed.py c:\test.txt Edison Kanye

这个函数就会返回下面内容(由于命令里没有传入字符编码参数,采取默认的 UTF-8)

图片

如果我们需要替换多个内容(例如将首字母改成大写)

图片

这个函数就会返回下面内容(命令传入了字符编码参数)

图片

接下来我们来看第二个函数——backup()

图片

这个函数的功能就是在修改文件之前先把文件备份,防止后期我们需要回滚复原

最后我们来看最后一个函数—— sed()

这个函数便是整个脚本的核心,它负责去执行修改替换文件内容的操作

图片

首先先打开一个临时文件(file_name.swap)和目标文件(file_name)

然后对目标文件(file_name)进行逐行读取到内存上,再去对内容进行修改,最后将修改后的内容写入到这个临时文件(file_name.swap)中

修改完毕之后,把临时文件重命名一下、把旧目标文件删掉,这个临时文件就变成了修改内容后的目标文件了

源码 修改完毕之后,把临时文件重命名一下、把旧目标文件删掉,这个临时文件就变成了修改内容后的目标文件了

import sys
import os
import time
from shutil import copy
​
​
def data_preprocess():
    file_name, old_str, new_str = sys.argv[1:4]
    try:
        encoding = sys.argv[4]
    except IndexError:
        encoding = 'utf-8'
​
    old_str_list = [i.encode(encoding) for i in old_str.split(',')]
    new_str_list = [i.encode(encoding) for i in new_str.split(',')]
​
    assert len(old_str_list) == len(new_str_list)
    trans_tabs = list(zip(old_str_list, new_str_list))
​
    return file_name, trans_tabs
​
​
def backup(file_name):
    time_mark = time.strftime('%Y%m%d_%H%M%S')
    bak_dir = r'C:\Users\Administrator\Desktop'
    basename = os.path.basename(file_name)
    os.makedirs(bak_dir) if not os.path.isdir(bak_dir) else True
    copy(file_name, os.path.join(bak_dir, basename + '_' + time_mark))
    print("备份 %s" %file_name)
​
​
def sed(file_name, trans_tabs):
    with open(file_name + '.swap', 'wb') as swap_fs, open(file_name, 'rb') as file_names:
        for line in file_names:
            for tab in trans_tabs:
                line = line.replace(tab[0], tab[1]) if tab[0] in line else line
            swap_fs.write(line)
    os.remove(file_name)
    os.rename(file_name + '.swap', file_name)
​
​
file_name, trans_tabs = data_preprocess()
backup(file_name)
sed(file_name, trans_tabs)


<center><B>---------------------------END---------------------------



## 题外话



![在这里插入图片描述](https://img-blog.csdnimg.cn/cb9eaa37ce994535bdf60e07ba4cf09e.jpeg#pic_center)

<font face="幼圆" size="4" color="red">感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
</font>

👉<font color = red>优快云大礼包:gift::</font>[全网最全《Python学习资料》免费赠送:free:!](https://blog.youkuaiyun.com/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502)<font color=#66cc66>(安全链接,放心点击)</font>



**一、Python所有方向的学习路线**

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

![img](https://img-blog.csdnimg.cn/1d40facda2b84990b8e1743f5487d455.png)
 ![img](https://img-blog.csdnimg.cn/0fc11d4a31bd431dbf124f67f1749046.png)



**二、Python必备开发工具**

工具都帮大家整理好了,安装就可直接上手!![img](https://img-blog.csdnimg.cn/ff266f529c6a46c4bc28e5f895dec647.gif#pic_center)

**三、最新Python学习笔记**

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

 ![img](https://img-blog.csdnimg.cn/6d414e9f494742db8bcc3fa312200539.png)



**四、Python视频合集**

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

![img](https://img-blog.csdnimg.cn/a806d9b941c645858c61d161aec43789.png)

**五、实战案例**

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

![img](https://img-blog.csdnimg.cn/a353983317b14d3c8856824a0d6186c1.png)

 **六、面试宝典**

![在这里插入图片描述](https://img-blog.csdnimg.cn/97c454a3e5b4439b8600b50011cc8fe4.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/111f5462e7df433b981dc2430bb9ad39.png)

##### **简历模板**![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)

👉<font color = red>优快云大礼包:gift::</font>[全网最全《Python学习资料》免费赠送:free:!](https://blog.youkuaiyun.com/weixin_68789096/article/details/132275547?spm=1001.2014.3001.5502)<font color=#66cc66>(安全链接,放心点击)</font>

若有侵权,请联系删除
《网络信息制作与发布》实训全流程:从专题策划、网站构建到前端实现与上线发布 本文详细介绍了WEB设计专题网站从策划到发布的全流程。主要内容包括:1.网络专题设计(确定主题、编写策划方案、素材搜集整理);2.网站结构构建(设计二级栏目、绘制布局图);3.艺术设计(配色方案、版式设计);4.网页制作(使用Dreamweaver进行标准化布局);5.信息发布(通过Dreamweaver和CuteFTP上传文件、网站维护与备份)。以"学习WEB设计"专题为例,采用框架结构,包含20余个栏目,使用深灰和蓝色为主色调。文章提供了完整的操作步骤和技术要点,适用于网站开发学习者 阅读详情

相关推荐

AI 辅助代码审查:开启代码质量管控的智能时代

AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3229

【Python】分享一个提高运维效率的 Python 脚本

哈喽大家好,今天给大家分享一个能够提升运维效率的 python 脚本对于 Linux 机器,咸鱼可以写个 shell 脚本或者直接批量使用 sed 命令就能很好地解决但对于 Windows 机器,上面的方法就不管用了,我们就需要想其他的办法这里咸鱼给大家分享一个由 python 编写的脚本,这个脚本能够去我们先看效果,目标文件:name.txt****这个函数实现的功能是接收输入的参数(目标文件名、要替换的内容,替换的内容、字符编码格式),然后将要替换的内容与替换的内容分别转换成列表形式。

xiaolinyui的博客 929

USB2.0基础知识总结

目录 1、协议层: 1.1、域分类 1.2 、USB传输方式: 1、协议层: 域和包定义:包是一次传输的单位,每个包由多个域组成; USB中是按照LSB进行字节传输; 1.1、域分类 1.1.1: 同步域(SYNC field) 所有的包都开始于同步域,在低速和全速通信中SYNC field用7个0和1个1来表示。 由于USB2.0使用了NRZI编码(0用翻转来表示,1用不翻转表示),所以00000001就是上图那样。 ...

qq_32938605的博客 4410

分享一个快速提高运维效率的 Python 脚本,赶紧码住!

哈喽大家好,今天给大家分享一个能够提升运维效率的 python 脚本对于 Linux 机器,咸鱼可以写个 shell 脚本或者直接批量使用 sed 命令就能很好地解决但对于 Windows 机器,上面的方法就不管用了,我们就需要想其他的办法这里咸鱼给大家分享一个由 python 编写的脚本,这个脚本能够去我们先看效果,目标文件:name.txt****这个函数实现的功能是接收输入的参数(目标文件名、要替换的内容,替换的内容、字符编码格式),然后将要替换的内容与替换的内容分别转换成列表形式。

AI大模型资料分享员 844

STLink驱动故障全解析:从卡顿到重装的终极修复指南

本文全面解析STLink驱动故障的常见现象及解决方案,包括驱动卸载、重装、Keil环境配置等关键步骤。针对设备管理器黄色感叹号、Keil识别异常等问题,提供从软件到硬件的终极修复指南,帮助开发者高效解决STLink连接问题。

sss66的博客 739

CLCD 中国生命周期基础数据库使用攻略

CLCD 是公共建筑碳排放计算的理想选择,其本地化数据可显著提高计算准确性。

hy行者勇哥的博客 2693

让你一步步成为运维专家之各种运维脚本

让你一步步成为运维专家之各种运维脚本 最近想做一个自动化运维的脚本,就整理一些资料,分享出来,一起共勉! 运维脚本参考:https://github.com/SwordfallYeung/BigData_AutomaticDeploy 自动化部署:https://gitee.com/lucky110100/sloth/tree/master Linux命令行与shell脚本编程大全案例:https://github.com/fengyuhetao/shell shell常用分析命令和脚本:https://g

lv_hulk的博客 3506

使用Simulink对液流电池在微电网中的动态响应进行建模与仿真

本文介绍了使用Simulink对液流电池在微电网中的动态响应进行建模与仿真的方法。通过搭建包含液流电池、双向DC-DC变换器、分布式能源和负载的微电网模型,并设计基于SOC的控制器,详细说明了从模型创建到仿真运行的完整流程。重点分析了液流电池在不同负载条件下的动态特性,评估了系统响应速度、充放电效率和稳定性等性能指标。该仿真方法为验证液流电池在微电网中的应用提供有效工具,有助于优化参数设计和提升系统可靠性。

amy_mhd的博客 137

自动化运维脚本案例分享

但在初期,我犯了一个错误,没有对配置文件的格式做严格校验,导致一次部署时因为一个缩进错误,脚本直接崩溃。后来,我引入了PyYAML库的校验功能,确保配置文件的正确性,避免了类似问题。于是,我优化了告警内容,只包含关键信息,比如错误摘要、时间戳和建议操作,大大提高了告警的实用性。今天,我想和大家分享一个真实的自动化运维脚本案例,这个案例不仅帮我解决了日常运维中的痛点,还极大地提升了团队的工作效率。从那以后,我下定决心,一定要把自动化运维脚本做起来,让机器去干那些重复性的工作,让人专注于更有价值的事情。

2509_93929788的博客 688

YOLOv8性能提升:基于SPD-Conv的高效空间深度转换卷积技术解析【YOLOv8】

SPD-Conv是一种结合了空间和深度信息的卷积技术。与传统卷积不同,SPD-Conv通过在卷积过程中动态调整空间维度和深度维度之间的关系,使得模型能够在较少的参数下捕捉到更多的空间细节。这种方法尤其适用于检测小目标和复杂场景中的细微特征。SPD-Conv的核心思想是通过引入一个空间深度转换矩阵,将输入特征图的空间信息有效地映射到更高维度的深度信息中。这种转换不仅可以保留输入图像的空间细节,还可以在卷积操作中增强特征的表达能力。空间深度转换:通过一个线性变换矩阵,将输入特征图的空间信息转换为深度信息。

博客 1810

ADS电路仿真方法综述:原理与应用

在射频与微波电路设计中,精确的仿真技术是验证性能的关键。ADS(Advanced Design System)作为行业标准工具,集成了多种仿真方法,适用于不同场景。本文将系统解析瞬态分析、谐波平衡(HB)、交流分析(AC)、直流分析(DC)、S参数、大信号SP(LSSP)及包络分析的原理、实现机制与应用场景。

u014344410的博客 482

运维开发之脚本语言(Script Language for Operations and Development)

在运维和网络工程领域,掌握脚本语言对于提高工作效率、实现自动化运维至关重要。10个脚本语言不是说得全会,个人喜欢用的,擅长的能精通一到两个,其他的熟悉即可。场景不同,使用的脚本语言也不同。本章详细给大家介绍10种运维开发语言,希望对大家有帮助。

Linux运维老纪的博客 1188

在Keil uv5里面添加STC元器件库,不影响其他元件

先到网上下载stc.CBD(宏晶网站的地址实效了)还有STC新系列单片机的头文件,宏晶的网站就有1、在Keil/C51/INC下新建目录"STC"文件夹, 把所有STC新系列单片机的头文件拷贝到"STC"目录下。2、下载的用于keil下的STC器件数据库更名为STC.CDB并拷贝到Keil/UV4目录下。3、打开Keil文件夹下的TOOLS.ini文件。4、在[UV2]下键入CDB0="UV2\S

技术联盟 1万+

运维老司机必备!5个Python脚本让你的工作效率翻倍

本文分享了5个实用的Python运维脚本,适用于Debian 13环境。重点介绍了两个核心脚本:1. 系统资源监控脚本,实时监测CPU、内存、磁盘和网络使用情况,可设置告警阈值;2. 批量SSH连接检测工具,通过多线程快速验证多台服务器连接状态。这些脚本轻量易用,能显著提升运维效率。文章仅展示部分代码,后续还包含其他实用运维脚本,适用于日常服务器管理工作。

qq_31815769的博客 499

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

python运维自动化脚本案例,python自动化运维工具

这篇文章主要介绍了python自动化运维需要掌握的技能,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。这篇文章主要介绍了一个有趣的事情,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获,下面让小编带着大家一起了解一下。

x062500的博客 885

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python运维自动化脚本案例,python自动化运维开发

随着大数据和人工智能的发展,Python语言得到了广泛的使用,当前Python语言的上升趋势还是比较明显的,在不少语言排行榜上Python语言也都名列前茅,所以学习Python语言的就业前景还是不错的。

2401_82891588的博客 630

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

从零开始学Python自动化运维

从零开始学习Python自动化运维代码需要掌握Python基础知识、自动化运维的概念以及如何利用Python编写自动化运维脚本。在编写自动化运维脚本时,需要注意文件操作、进程管理、网络编程、定时任务、远程任务执行以及配置管理与自动化部署等方面的内容。同时,还需要做好错误处理和日志记录以提高脚本的健壮性和可靠性。通过不断学习和实践,可以逐渐掌握Python自动化运维的技能并应用于实际工作中。

2301_78096295的博客 1042

python运维自动化脚本案例,python 自动化运维框架

大家好,给大家分享一下python自动化运维需要掌握的技能,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!大家好,小编来为大家解答以下问题,python自动化运维需要掌握的技能,python自动化运维常用模块,现在让我们一起来看看吧!

2301_81837718的博客 915

【Python源码分享】基于Django的批量运维管理系统分享

基于Python的批量运维管理系统源码分享

天码编程的博客 567

超好用!分享8个 Python 自动化脚本

每天你都可能会执行许多重复的任务,例如阅读新闻、发邮件、查看天气、打开书签、清理文件夹等等,使用自动化脚本,就无需手动一次又一次地完成这些任务,非常方便。而在某种程度上,Python 就是自动化的代名词。这个脚本能够实现从网页中抓取文本,然后自动化语音朗读,当你想听新闻的时候,这是个不错的选择。代码分为两大部分,第一通过爬虫抓取网页文本呢,第二通过阅读工具来朗读文本。需要的第三方库:Beautiful Soup - 经典的HTML/XML文本解析器,用来提取爬下来的网页信息requests - 好用到逆天的

SixStar_FL的博客 3043

用Python写的运维脚本

除了以上提到的任务,Python 还能帮助运维工程师进行自动化测试(如 pytest、selenium 库),数据分析与可视化(如 numpy、matplotlib、pandas 库),机器学习与人工智能(如 scikit-learn、tensorflow、nltk 库)。Python 是一种流行的编程语言,具有丰富的第三方库和强大的自动化能力,适用于多个领域。Python 对于运维工程师提供了不少便利,可以大幅提高工作效率,减少错误率。解析日志文件并提取有用信息。监控系统状态并发送警报。

Python_paipai的博客 523
上一篇: python | 写一个记仇本
下一篇: 精美可视化:Python自动化生成漂亮的测试报告
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值