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 相关文章推荐
python中迭代器(iterator)用法实例分析
Apr 29 Python
Python正则表达式如何进行字符串替换实例
Dec 28 Python
python使用tensorflow深度学习识别验证码
Apr 03 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
Python基于生成器迭代实现的八皇后问题示例
May 23 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
Pycharm无法使用已经安装Selenium的解决方法
Oct 13 Python
python 弹窗提示警告框MessageBox的实例
Jun 18 Python
python里运用私有属性和方法总结
Jul 08 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
Django 实现Admin自动填充当前用户的示例代码
Nov 18 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 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
php数据库连接
2006/10/09 PHP
编写漂亮的代码 - 将后台程序与前端程序分开
2008/04/23 PHP
PHP类的使用 实例代码讲解
2009/12/28 PHP
php基于双向循环队列实现历史记录的前进后退等功能
2015/08/08 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
php获取一定范围内取N个不重复的随机数
2016/05/28 PHP
如何修改Laravel中url()函数生成URL的根地址
2017/08/11 PHP
类似框架的js代码
2006/11/09 Javascript
javascript 鼠标拖动图标技术
2010/02/07 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
通过jQuery源码学习javascript(一)
2012/12/27 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
js+HTML5实现视频截图的方法
2015/06/16 Javascript
js下拉选择框与输入框联动实现添加选中值到输入框的方法
2015/08/17 Javascript
js实现横向伸展开的二级导航菜单代码
2015/08/28 Javascript
Flow之一个新的Javascript静态类型检查器
2015/12/21 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
angularJs中json数据转换与本地存储的实例
2018/10/08 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
在webstorm中配置less的方法详解
2020/09/25 Javascript
python 判断自定义对象类型
2009/03/21 Python
Python struct模块解析
2014/06/12 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
Python环境下安装PyGame和PyOpenGL的方法
2020/03/25 Python
Python使用re模块验证危险字符
2020/05/21 Python
安全责任书模板
2014/07/22 职场文书
万能检讨书开头与结尾怎么写
2015/02/17 职场文书
法定代表人资格证明书
2015/06/18 职场文书
团队拓展训练感想
2015/08/07 职场文书