python 批量修改预定字符串并将修改后的字符串插入文件指定位置
2017-03-07 10:52
411 查看
下面的例子是在文件的指定位置增加指定字符串的例子
修改配置文件:
对预定的字符串批量替换指定字符:
最后一段代码看了好长时间才稍微明白点。
map函数的第一个参数是一个function,第二个是一个序列,对这个序列的每一个元素都调用一遍这个函数返回之后的序列。下面两者是等价的。
将上面生成的序列用 ‘|’ 分割开,作用是生成一个字符串的正则表达式,这个正则表达式匹配adict中的所有key
re.compile()是将这个正则表达式进行翻译成真正的正则表达式。
print re.compile('|'.join(map(re.escape, adict))) #<_sre.SRE_Pattern object at 0x7f06779f5f30>
print type(re.compile('|'.join(map(re.escape, adict)))) #<type '_sre.SRE_Pattern'>
在text中找到匹配的rx,将匹配到的部分传递给translate函数。
re.sub的用法re.sub(pattern, repl, string, count=0, flags=0),pattern.compile.sub这里的pattern就是re.sub的第一个参数。
将匹配到的参数传递给tranlate函数后,match.group(0)就是匹配的第一个组,这里传的是匹配部分返回的肯定就是匹配到的key,最终返回字典key对应的value。在外层sub方法中进行替换。
修改配置文件:
def add_str(pre_str): lines = [] flag = True f = open("z.txt") for line in f: lines.append(line) if line.strip("\n ") == "</se.diabol.jenkins.pipeline.DeliveryPipelineView>" and flag: lines.append(pre_str) flag = False f.close() f = open("z.txt", "w") f.write("".join(lines)) f.close()
对预定的字符串批量替换指定字符:
import re def multi_repalce(text, adict): rx = re.compile('|'.join(map(re.escape, adict))) # def translate(match): # return adict[match.group(0)] translate = lambda (match) : adict[match.group(0)] return rx.sub(translate, text)
最后一段代码看了好长时间才稍微明白点。
map函数的第一个参数是一个function,第二个是一个序列,对这个序列的每一个元素都调用一遍这个函数返回之后的序列。下面两者是等价的。
map(re.escape, adict) == map(re.escape, adict.keys())
将上面生成的序列用 ‘|’ 分割开,作用是生成一个字符串的正则表达式,这个正则表达式匹配adict中的所有key
'|'.join(map(re.escape, adict))
re.compile()是将这个正则表达式进行翻译成真正的正则表达式。
re.compile('|'.join(map(re.escape, adict)))
print re.compile('|'.join(map(re.escape, adict))) #<_sre.SRE_Pattern object at 0x7f06779f5f30>
print type(re.compile('|'.join(map(re.escape, adict)))) #<type '_sre.SRE_Pattern'>
在text中找到匹配的rx,将匹配到的部分传递给translate函数。
re.sub的用法re.sub(pattern, repl, string, count=0, flags=0),pattern.compile.sub这里的pattern就是re.sub的第一个参数。
rx.sub(translate, text)
将匹配到的参数传递给tranlate函数后,match.group(0)就是匹配的第一个组,这里传的是匹配部分返回的肯定就是匹配到的key,最终返回字典key对应的value。在外层sub方法中进行替换。
translate = lambda (match) : adict[match.group(0)]
相关文章推荐
- Python:字符串中指定位置插入一个字符
- PYTHON之批量文件指定字符串替换
- 【python】解析不规则json文件批量获取指定字符串
- CString 文件修改指定位置的字符串(文件大小不变)
- C/C++在文件指定位置插入字符串或者空行
- 如何使用Python批量修改文件中有规律的字符串
- Python 实现字符串中指定位置插入一个字符
- Python批量修改指定目录下的文件名和文件内容
- python插入内容到指定文件的位置
- 涛哥的Python脚本工具箱之批量替换目录所有指定扩展名的文件中的指定字符串
- python读取指定字节及位置的文件内容
- 根据文件修改时间批量移动到指定目录
- python检索目录下所有文件中包含指定字符串的文件
- 【Python】修改文件并立即写回到原始位置(inplace读写)
- 在指定的位置后插入字符串
- 文件行python 简单文件操作 修改文件指定行
- Python 检索目录下所有文件中包含指定字符串的文件
- 修改文件指定位置
- 递归修改文件中指定字符串
- 批量添加顺序用户(如果要添加指定文件里的用户,稍作修改即可)