利用正则表达式进行修改自定义ini配置文件
2012-06-27 19:34
441 查看
正则表达式比较复杂,前段时间花了一些时间研究,但一直没能与实际工作结合起来,这几天修改配置文件,因牵涉的文件极其多,逐个修改工作量很大,便考虑写个工具,以后再改就方便了很多,结果就被正则表达式给难住了,原来[]符号在正则中是有特别用处的,一时疏忽,结果搞了好久。
解决的问题如下:程序搜索某个目录下的配置文件,找到后将配置文件的某个session下的列表替换掉。
打算分三步走
1、建立函数replace_session(fileName, sessionName, *alist),用以替换指定文件中,指定sessionName中的内容
2、查找指定目录下的指定文件,得出指定文件列表
3、将1和2组合起来,实现查找文件并替换对应SessionName的功能。
代码如下:
解决的问题如下:程序搜索某个目录下的配置文件,找到后将配置文件的某个session下的列表替换掉。
打算分三步走
1、建立函数replace_session(fileName, sessionName, *alist),用以替换指定文件中,指定sessionName中的内容
2、查找指定目录下的指定文件,得出指定文件列表
3、将1和2组合起来,实现查找文件并替换对应SessionName的功能。
代码如下:
myCode# !usr/bin/env python 2.7 # coding: utf-8 # filename: replaceIni.py # 替换配置文件中某个session下的字符串数组 import re def replace_session(fileName, sessionName, *alist): pattern = re.compile(r'[[].*[]]') datalist0 = [] datalist1 =[] datalist2 =[] start = 0 file_object = open(fileName, "r") list_of_all_the_lines = file_object.readlines() for line in list_of_all_the_lines: if(line.find("[{0}]".format(sessionName)) != -1): start = 1 elif (re.compile(r'[[].*[]]').search(line)): if(start == 1): start = 2 if(start == 0): datalist0.append(line) if(start == 1): datalist1.append(line) if(start == 2): datalist2.append(line) file_object.close() datalist1_replace = []; if(len(datalist1) > 0): datalist1_replace.append(datalist1[0]) for line in alist: datalist1_replace.append("{0}\n".format(line)) for line in datalist1[1:]: if(re.compile(r'\s*#').match(line)): datalist1_replace.append(line) else: print("not find session, {0}, [{1}]".format(fileName, sessionName )) return file_object = open(fileName, "w") for line in datalist0: file_object.write (line) for line in datalist1_replace: file_object.write (line) for line in datalist2: file_object.write (line) file_object.close() if __name__ == "__main__": replace_session("ipad_set.ini", "NOWL2_DEST_SERVERs", "192.168.0.1:25222", "192.168.0.3:110") print("done")
相关文章推荐
- 利用ini_set()函数实现对php配置文件的修改
- 一个简单的利用ini配置文件以及用户输入的交互进行文件夹内容拷贝的批处理文件脚本的实现
- DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
- 利用正则表达式获取特定文件(如java class)并对其进行处理(如代码统计)
- C# 利用正则表达式进行忽略大小写的字符串替换的应用--自定义高亮显示
- C# 利用正则表达式进行忽略大小写的字符串替换的应用--自定义高亮显示
- DCMTK开源库的学习笔记4:利用ini配置文件对dcm影像进行归档
- 在Idea中利用正则表达式找出匹配行并捕获内容进行处理
- 利用mmap和数组方式的存取操作对结构化数据文件进行修改
- 利用jdom解析xml配置文件,并且按照xml格式输出,进行缩进
- 利用GetPrivateProfileString读取配置文件(.ini)
- 八、MDT 2013 Update 1批量部署-修改配置文件BootStrap.ini和CustomSettings.ini
- WinMoblie 利用EVC读写INI,XML配置文件
- 【PHP】修改PHP配置文件php.ini 上传文件的大小限制
- PHP经典实例教程(使用正则动态修改配置文件)
- Java 利用commons-configuration.jar 动态修改配置文件(.properties)
- 利用GetPrivateProfileString读取配置文件(.ini)
- 用R语言抓取豆瓣前250名的影片评分,并利用正则表达式进行数据处理
- 写个c++小程序根据配置文件对注册表进行修改
- 利用GetPrivateProfileString/WritePrivateProfileString读写配置文件(.ini)