博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PYTHON之批量文件指定字符串替换
阅读量:6253 次
发布时间:2019-06-22

本文共 1508 字,大约阅读时间需要 5 分钟。

在工作应用中,运维自动化的基础是标准化。

而标准化的工作,是难点,在公司相关部门的配合。

那么,在有标准化之后,相应的部署脚本,就比较好写了。

贡献一个在类似环境下可以运用的东东。。

当然,可以写得更好点,只是时间不够。。

复制代码
#!/usr/bin/python# -*- coding:utf-8 -*-import sys,os#定义需要替换IP的所有文件列表,运用环境下一定要弄清楚,要不然会导致不能正常运行。如果所有环境都定义好,则此脚本通用性更强repip_file_list = ["D1_file", \                   "D2_file", \                   "D3_file", \                   "D4_file", \                   "D5_file"]#将模板的IP和新环境的IP集成字典,方便替换,且封装性好点ip_dict = {
"old_c_ip" : "1.1.1.1", \ "new_c_ip" : "2.2.2.2", \ "old_f_ip" : "1.1.1.3", \ "new_f_ip" : "2.2.2.3", \ "old_k_ip" : "1.1.1.4", \ "new_k_ip" : "2.2.2.4", \ "old_o_ip" : "1.1.1.5",\ "new_o_ip" : "2.2.2.5", \ "old_s_ip" : "1.1.1.6", \ "new_s_ip" : "2.2.2.6"}#把指定文件的内容替换的函数,多个环境参数并行替换,这样就可以一个脚本,多个通用。def repip_func(file_path, ip_dict): f = open(file_path,'r+') all_the_lines = f.readlines() f.seek(0) f.truncate() for line in all_the_lines: line = line.replace(ip_dict['old_c_ip'],ip_dict['new_c_ip']) line = line.replace(ip_dict['old_t_ip'],ip_dict['new_t_ip']) line = line.replace(ip_dict['old_s_ip'],ip_dict['new_s_ip']) line = line.replace(ip_dict['old_f_ip'],ip_dict['new_f_ip']) line = line.replace(ip_dict['old_k_ip'],ip_dict['new_k_ip']) f.write(line) f.close() print "%s have replace ip %s" % (file_path, ip_dict)def main(): for file_path in repip_file_list: repip_func(file_path, ip_dict)if __name__ == "__main__": main()
复制代码

 

转载地址:http://trfsa.baihongyu.com/

你可能感兴趣的文章
expect语法基础: while、for 循环、if 语句的用法示例
查看>>
ubuntu 9.04 的 NTFS 分区自动加载
查看>>
现代软件工程讲义 7 设计阶段 Spec
查看>>
精确控制MFC控件窗口的位置和大小(top|left|width|height)
查看>>
ASP.NET MVC中Areas的namespaces和UseNamespaceFallback
查看>>
队列希望IOS开发(66)之构建自己的分派队列
查看>>
谈谈Android中的SurfaceTexture
查看>>
Nginx+Varnish又开始新的征程了
查看>>
NUnit-Console 命令行选项详解
查看>>
[问题2014S10] 解答
查看>>
微信游戏《全民炫舞》公司的引擎开发和布料系统技术介绍
查看>>
同步与互斥的区别和联系
查看>>
eclipse中tomcat能正常启动,在浏览器中不能打开问题
查看>>
基于Linux根据僵尸网络病毒平台《比尔盖茨》
查看>>
JNI编程(二) —— 让C++和Java相互调用(2)
查看>>
Android搜索框效果
查看>>
ReportMachine OCX
查看>>
IOS开发--待研究源码(持续添加更新)
查看>>
解读ASP.NET 5 & MVC6系列(9):日志框架
查看>>
LinkedHashMap及其源码分析
查看>>