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 isinstance判断对象类型
Sep 06 Python
python连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
Python进阶学习之特殊方法实例详析
Dec 01 Python
python 批量修改/替换数据的实例
Jul 25 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
Python代理IP爬虫的新手使用教程
Sep 05 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
Python input函数使用实例解析
Nov 22 Python
Django程序的优化技巧
Apr 29 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
Apr 29 Python
如何利用python实现列表嵌套字典取值
Jun 10 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
Terran历史背景
2020/03/14 星际争霸
社区(php&amp;&amp;mysql)二
2006/10/09 PHP
php连接mysql数据库代码
2009/03/10 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
JavaScript 字符串连接性能优化
2008/12/20 Javascript
jQuery对象和DOM对象的相互转化实现代码
2010/03/02 Javascript
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
javaScript 删除字符串空格多种方法小结
2012/10/24 Javascript
jQuery实现点击标题输入详细信息
2013/04/16 Javascript
jquery 判断滚动条到达了底部和顶端的方法
2014/04/02 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
Python2.x版本中基本的中文编码问题解决
2015/10/12 Python
python中input()与raw_input()的区别分析
2016/02/27 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
2018/01/06 Python
Python3爬虫学习入门教程
2018/12/11 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
2020/01/24 Python
Python中qutip用法示例详解
2020/10/02 Python
Booking.com缤客中国:全球酒店在线预订网站
2020/05/03 全球购物
物流仓管员岗位职责
2013/12/04 职场文书
致400米运动员广播稿
2014/02/07 职场文书
客服部班长工作责任制
2014/02/25 职场文书
打造高效课堂实施方案
2014/03/22 职场文书
反邪教警示教育方案
2014/05/13 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
2014年教师节活动总结
2014/08/29 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
初中信息技术教学反思
2016/02/16 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android