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字符串排序方法
Aug 29 Python
python持久性管理pickle模块详细介绍
Feb 18 Python
深入浅出分析Python装饰器用法
Jul 28 Python
Python3实战之爬虫抓取网易云音乐的热门评论
Oct 09 Python
win10系统下python3安装及pip换源和使用教程
Jan 06 Python
python中的itertools的使用详解
Jan 13 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
IDLE下Python文件编辑和运行操作
Apr 25 Python
Django中使用Json返回数据的实现方法
Jun 03 Python
PyTorch 导数应用的使用教程
Aug 31 Python
如何解决python多种版本冲突问题
Oct 13 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 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
Windows下PHP5和Apache的安装与配置
2006/09/05 PHP
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
10款实用的PHP开源工具
2015/10/23 PHP
php反射学习之不用new方法实例化类操作示例
2019/06/14 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
javascript中Date()函数在各浏览器中的显示效果
2015/06/18 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
JS实现简单的浮动碰撞效果示例
2017/12/28 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
详解Vue、element-ui、axios实现省市区三级联动
2019/05/07 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
ZK中使用JS读取客户端txt文件内容问题
2019/11/07 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
python3中str(字符串)的使用教程
2017/03/23 Python
python3使用SMTP发送HTML格式邮件
2018/06/19 Python
python实现函数极小值
2019/07/10 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
2019/12/03 Python
Python实现简单的猜单词小游戏
2020/10/28 Python
CSS3制作3D立方体loading特效
2020/11/09 HTML / CSS
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
接口的多继承会带来哪些问题
2015/08/17 面试题
大三学生学年自我鉴定
2014/09/12 职场文书
公司领导班子民主生活会对照检查材料
2014/10/02 职场文书
南湾猴岛导游词
2015/02/09 职场文书
Mysql Show Profile
2021/04/05 MySQL
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
python turtle绘图
2022/05/04 Python