PYTHON之批量文件指定字符串替换
在工作应用中,运维自动化的基础是标准化。
而标准化的工作,是难点,在公司相关部门的配合。
那么,在有标准化之后,相应的部署脚本,就比较好写了。
贡献一个在类似环境下可以运用的东东。。
当然,可以写得更好点,只是时间不够。。
#!/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()
PYTHON之批量文件指定字符串替换的更多相关文章
- linux 批量文件查找并替换
linux 批量文件查找并替换 sed -i "s/oldstring/newstring/g" `grep oldstring -rl path` 如: sed -i " ...
- python文件操作--字符串替换
如把test.txt文件的 所有 AAA 字符串 替换成 aaaaa with open('test.txt','+r') as f: t = f.read() t = d.replace('AAA' ...
- python工具 - 批量文件重命名
日常工作中经常会遇到这样的情况,需要将某个文件夹下的文件按着一定的规则进行重命名,当文件数量及其庞大的时候手工一个一个的去修需要耗费大量的时间,以下python工具可以协助批量修改文件名. 场景:某文 ...
- python实现批量文件重命名
本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到 ...
- VIM批量文件查找和替换
使用vim时间不长,linux命令行下常用的文本编辑工具,所以需要掌握一些基本的用法.很多不会的不是百度就谷歌,总有你想要的答案. 1. 批量文件查找内容 vimgrep 比如在当前目录下查找带有“a ...
- 【Python】批量修改指定目录下所有文件的文件名/后缀
[删除.txt文件的后缀] import os, shutil #rootdir = input("请输入文件路径(结尾加上/):") #fileList = os.listdir ...
- python提取批量文件内的指定内容
目标文件夹: 文件内容: 实现代码: # -*- coding:utf-8 -*- # __author__ :kusy # __content__:get ssr info from html fi ...
- linux替换文件指定字符串前面的内容
sed 's/.*user_id/user_id/' wechat_log2 > target_log
- python,批量生成指定格式的审核数据(传输参数格式为数组时)
#思路#获取list长度(例如列表有20条数据,则生成20条数据),生成数组长度为list元素的数据,完成对列表20条数据的批量审核def createBatchData(self,str_in,li ...
随机推荐
- MST最小生成树及Prim普鲁姆算法
MST在前面学习了Kruskal算法,还有一种算法叫做Prim的.这两者的区别是Prim算法适合稠密图,比如说鸟巢这种几乎所有点都有相连的图.其时间复杂度为O(n^2),其时间复杂度与边的数目无关:而 ...
- Swift学习笔记八:枚举
1. 枚举语法 1)枚举的定义 使用enum关键词而且把它们的整个定义放在一对大括号内: enum SomeEumeration { // enumeration definition go ...
- 安全通信 QSslSocket
The QSslSocket class provides an SSL encrypted socket for both clients and servers. More... Header: ...
- 提取DLL类库代码
@SET destFolder=.\bin@XCOPY /I /Y %SYSTEMDRIVE%\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.Pro ...
- 对象-关系映射ORM(Object Relational Mapping)(转)
ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现 Hibernate在实现ORM功能的时候主要用到的文件有:映射类(*.java).映射文件(*.hbm.xml)和数据库配置文件 ...
- 兼容IE浏览器的placeholder【超不错】
jQuery EnPlaceholder plug (兼容IE浏览器的placeholder)使用 >>>>>>>>>>>>&g ...
- SQL Server 2012 LocalDB 管理之旅
SQL Server LocalDB能够最大限度地节省您的数据库管理精力,以便开发人员可以专注于开发数据库应用. 使用SqlLocalDB命令行管理LocalDB 为了方便管理,LocalDB提供了一 ...
- 详解SQL Server 2005 Express下的事件探查器
安装Visual Studio 2008会有附带的SQL Server 2005 Express版 我们开发一般都用那个都不单独安装SQL Server的 大家都知道express版的sql是没有 事 ...
- .net开发windows服务
最近一个月都异常的繁忙,项目进度非常的紧,回头看看自己的blog,整整一个5月都没有一篇文章,非常惭愧,现在补几篇文章,介绍一下我最近关注的技术.这篇文章将介绍Windows服务程序的开发.摘要:本文 ...
- c#读取文件
你平时是怎么读取文件的?使用流读取.是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番), 里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它 ...