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 相关文章推荐
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
Python中title()方法的使用简介
May 20 Python
windows及linux环境下永久修改pip镜像源的方法
Nov 28 Python
Python下调用Linux的Shell命令的方法
Jun 12 Python
Python面向对象之类和对象属性的增删改查操作示例
Dec 14 Python
Python实现代码统计工具
Sep 19 Python
Python FtpLib模块应用操作详解
Dec 12 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
Python中的datetime包与time包包和模块详情
Feb 28 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中的密码安全性Password Hashing
2017/02/04 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
使用JavaScript获取电池状态的方法
2014/05/03 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
百度地图api如何使用
2015/08/03 Javascript
Web打印解决方案之证件套打的实现思路
2016/08/29 Javascript
javascript的几种写法总结
2016/09/30 Javascript
JS中位置与大小的获取方法
2016/11/22 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
React 组件间的通信示例
2018/06/14 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue框架制作购物车小球动画效果实例代码
2019/09/26 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
JavaScript实现移动端拖动元素
2020/11/24 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python实现对excel进行数据剔除操作实例
2017/12/07 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python 实现还原已撤回的微信消息
2019/06/18 Python
详解Matplotlib绘图之属性设置
2019/08/23 Python
Python+opencv+pyaudio实现带声音屏幕录制
2019/12/23 Python
python实现学生信息管理系统(精简版)
2020/11/27 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
美术专业个人自我评价
2014/01/18 职场文书
大学生党员承诺书
2014/05/20 职场文书
会计毕业生自荐书
2014/06/12 职场文书
感谢信怎么写
2015/01/21 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
《自己去吧》教学反思
2016/02/16 职场文书
win10电脑右下角输入法图标不见了?Win10右下角不显示输入法的解决方法
2022/07/23 数码科技