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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
跟老齐学Python之总结参数的传递
Oct 10 Python
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
wxPython使用系统剪切板的方法
Jun 16 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
Feb 21 Python
python多线程并发实例及其优化
Jun 27 Python
用Python画小女孩放风筝的示例
Nov 23 Python
pytorch实现建立自己的数据集(以mnist为例)
Jan 18 Python
使用Puppeteer爬取微信文章的实现
Feb 11 Python
使用Pycharm分段执行代码
Apr 15 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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实现获取图片颜色值的方法
2014/07/11 PHP
MyEclipse常用配置图文教程
2014/09/11 PHP
php中in_array函数用法探究
2014/11/25 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
JavaScript 学习笔记(五)
2009/12/31 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
Bootstrap实现下拉菜单效果
2016/04/29 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
如何在 Vue.js 中使用第三方js库
2017/04/25 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
[57:38]2018DOTA2亚洲邀请赛3月30日 小组赛A组 OpTic VS OG
2018/03/31 DOTA
python简单的函数定义和用法实例
2015/05/07 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
基于pytorch 预训练的词向量用法详解
2020/01/06 Python
CSS3 网页下拉菜单代码解释 中文翻译
2010/02/27 HTML / CSS
Hammitt官网:设计师手袋
2020/05/23 全球购物
安全教育实施方案
2014/03/02 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
销售人员求职信
2014/07/22 职场文书
建筑施工安全责任书
2014/07/24 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
在pyCharm中下载第三方库的方法
2021/04/18 Python
MySQL 8.0 Online DDL快速加列的相关总结
2021/06/02 MySQL
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
阿里云服务器部署mongodb的详细过程
2021/09/04 MongoDB
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
2022/04/13 Python