Python基于正则表达式实现文件内容替换的方法


Posted in Python onAugust 30, 2017

本文实例讲述了Python基于正则表达式实现文件内容替换的方法。分享给大家供大家参考,具体如下:

最近因为有一个项目需要从普通的服务器移植到SAE,而SAE的thinkphp文件结构和本地测试的有出入,需要把一些html和js的引用路径改成SAE的形式,为了不手工改,特地速成了一下Python的正则表达式和文件操作。主要要求是将某目录下的html和js里面的几个路径变量分别更改成相应的形式,匹配文件名的时候用了正则

import os
import re
#all file in the directory
filelist = []
#function to traverse the directory
def recurseDir(path):
 for i in os.listdir(path):
  if os.path.isdir(path + '\\' + i):
   recurseDir(path + '\\' + i)
  else:
   p = path + '\\' + i
   print p
   filelist.append(p)
#replace the file content
def replace(strFind, strReplace, lines, fileIO):
 for s in lines:
  if s.find(strFind) != -1:
   foutput.write(s)
  fileIO.write(s.replace(strFind, strReplace))
rootpath = os.path.abspath('.')
recurseDir(rootpath)
pattern1 = re.compile(r'.+html')
pattern2 = re.compile(r'.+js')
for fileName in filelist:
 match1 = pattern1.match(fileName)
 match2 = pattern2.match(fileName)
 if match1 or match2:
  lines = open(fileName).readlines()
  fp = open(fileName + '.temp','w')
  foutput = open("result.txt", 'w')
  foutput.write(fileName)
  if match1:
   replace('<include file="./Tpl/', '<include file="./App/Tpl/', lines, fp)
  if match2:
   replace('xxx/index.php', 'index.php', lines, fp)
  fp.close()
  #delete original file
  if os.path.exists(fileName):
   os.remove(fileName);
  #rename the temp file
  os.rename(fileName + '.temp', fileName)
Python 相关文章推荐
wxPython 入门教程
Oct 07 Python
pytyon 带有重复的全排列
Aug 13 Python
完美解决python遍历删除字典里值为空的元素报错问题
Sep 11 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
Python数据结构与算法之二叉树结构定义与遍历方法详解
Dec 12 Python
JSON文件及Python对JSON文件的读写操作
Oct 07 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
python对文件的操作方法汇总
Feb 28 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
numpy实现RNN原理实现
Mar 02 Python
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
Apr 03 Python
Python导入模块时遇到的错误分析
Aug 30 #Python
简单学习Python多进程Multiprocessing
Aug 29 #Python
Python简单实现自动删除目录下空文件夹的方法
Aug 29 #Python
Python实现文件内容批量追加的方法示例
Aug 29 #Python
Python实现解析Bit Torrent种子文件内容的方法
Aug 29 #Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 #Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 #Python
You might like
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
与数据库连接
2006/10/09 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
javascript 流畅动画实现原理
2009/09/08 Javascript
javascript 面向对象继承
2009/11/26 Javascript
js解析与序列化json数据(一)json.stringify()的基本用法
2013/02/01 Javascript
jQuery学习笔记(4)--Jquery中获取table中某列值的具体思路
2013/04/10 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
使用js实现将后台传入的json数据放在前台显示
2018/08/06 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
centos 下面安装python2.7 +pip +mysqld
2014/11/18 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python获取linux主机ip的简单实现方法
2016/04/18 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
Python数据可视化:泊松分布详解
2019/12/07 Python
深圳-东方伟业笔试部分
2015/02/11 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
保护野生动物倡议书
2014/05/16 职场文书
幼儿园标语大全
2014/06/19 职场文书
条幅标语大全
2014/06/20 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
幼儿园重阳节活动总结
2015/05/05 职场文书
大国崛起观后感
2015/06/02 职场文书
开学第一天的感想
2015/08/10 职场文书
法院执行局工作总结
2015/08/11 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
使用Python脚本对GiteePages进行一键部署的使用说明
2021/05/27 Python
分析Python list操作为什么会错误
2021/11/17 Python