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里对list中的整数求平均并排序
Sep 12 Python
python比较2个xml内容的方法
May 11 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python如何定义带参数的装饰器
Mar 20 Python
python实现定时发送qq消息
Jan 18 Python
浅谈Python的条件判断语句if/else语句
Mar 21 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python元组和字典的内建函数实例详解
Oct 22 Python
Python流程控制常用工具详解
Feb 24 Python
使用pytorch实现论文中的unet网络
Jun 24 Python
运行Python编写的程序方法实例
Oct 21 Python
用python对excel进行操作(读,写,修改)
Dec 25 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
php 远程关机操作的代码
2008/12/05 PHP
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
JavaScript 动态将数字金额转化为中文大写金额
2009/05/14 Javascript
jQuery入门第一课 jQuery选择符
2010/03/14 Javascript
javascript 跨浏览器开发经验总结(五) js 事件
2010/05/19 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
JavaScript数组和循环详解
2015/04/27 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
jQuery动画效果相关方法实例分析
2015/12/31 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
2019/03/01 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
[44:09]DOTA2上海特级锦标赛A组小组赛#1 EHOME VS MVP.Phx第二局
2016/02/25 DOTA
Python实现partial改变方法默认参数
2014/08/18 Python
Python实现的下载网页源码功能示例
2017/06/13 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python二叉树的镜像转换实现方法示例
2019/03/06 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
python求最大值最小值方法总结
2019/06/25 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
市场部规章制度
2014/01/24 职场文书
酒店员工检讨书
2014/02/18 职场文书
《槐乡五月》教学反思
2014/04/25 职场文书
党小组意见范文
2015/06/08 职场文书
小学主题班会教案
2015/08/17 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript
教你nginx跳转配置的四种方式
2022/07/07 Servers