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的Twisted框架中Deferred对象的用法
May 25 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
python+mongodb数据抓取详细介绍
Oct 25 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
python实现烟花小程序
Jan 30 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
Django框架表单操作实例分析
Nov 04 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
python字符串常用方法及文件简单读写的操作方法
Mar 04 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 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中进行身份认证
2006/10/09 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
JavaScript高级程序设计
2006/12/29 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
jquery validate使用攻略 第四步
2010/07/01 Javascript
javascript修改IMG标签的src问题
2014/03/28 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
vue3.0 上手体验
2020/09/21 Javascript
python检测远程端口是否打开的方法
2015/03/14 Python
python使用webbrowser浏览指定url的方法
2015/04/04 Python
python3实现mysql导出excel的方法
2019/07/31 Python
django框架创建应用操作示例
2019/09/26 Python
Python基于gevent实现文件字符串查找器
2020/08/11 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
运动会广播稿100字
2014/01/11 职场文书
化工专业自荐书
2014/06/16 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
如何书写先进事迹材料?
2019/07/02 职场文书
Java面试题冲刺第十五天--设计模式
2021/08/07 面试题
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
Golang 结构体数据集合
2022/04/22 Golang