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 相关文章推荐
Python3基础之函数用法
Aug 13 Python
Python二分法搜索算法实例分析
May 11 Python
在Python中处理日期和时间的基本知识点整理汇总
May 22 Python
python获取外网IP并发邮件的实现方法
Oct 01 Python
Python饼状图的绘制实例
Jan 15 Python
python如何实现代码检查
Jun 28 Python
Python的log日志功能及设置方法
Jul 11 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
Python常用模块os.path之文件及路径操作方法
Dec 03 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
简述python Scrapy框架
Aug 17 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 强制下载文件实现代码
2013/10/28 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
2017/11/14 PHP
js下弹出窗口的变通
2007/04/18 Javascript
JQuery Ajax通过Handler访问外部XML数据的代码
2010/06/01 Javascript
页面只有一个text的时候,回车自动submit的解决方法
2010/08/12 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
iframe窗口高度自适应的又一个巧妙实现思路
2014/04/04 Javascript
JavaScript Array对象扩展indexOf()方法
2014/05/09 Javascript
JavaScript获取URL汇总
2015/06/08 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
深入浅析JS Function()构造函数
2016/08/22 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
手把手带你搭建一个node cli的方法示例
2020/08/07 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
Python实现简单的多任务mysql转xml的方法
2017/02/08 Python
Python2与Python3的区别详解
2020/02/09 Python
用Python绘制漫步图实例讲解
2020/02/26 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
财务会计专业毕业生自荐信
2013/10/19 职场文书
《莫高窟》教学反思
2014/02/25 职场文书
家长对老师的感言
2014/03/11 职场文书
2014年精神文明工作总结
2014/12/23 职场文书
2015年副班长工作总结
2015/05/15 职场文书
听证会主持词
2015/07/03 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
SQL 聚合、分组和排序
2021/11/11 MySQL
html网页引入svg图片的4种方式
2022/08/05 HTML / CSS