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实现短网址和数字相互转换的方法
Apr 28 Python
python获取本机mac地址和ip地址的方法
Apr 29 Python
python批量提取word内信息
Aug 09 Python
OpenCV实现人脸识别
Apr 07 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
在pycharm中显示python画的图方法
Aug 31 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
Python 导入文件过程图解
Oct 15 Python
Python模块future用法原理详解
Jan 20 Python
Python字符串格式化f-string多种功能实现
May 07 Python
python名片管理系统开发
Jun 18 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/11/19 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
javascript 日期常用的方法
2009/11/11 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
jQuery实现手机自定义弹出输入框
2016/06/13 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
在vue中使用jointjs的方法
2018/03/24 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
2018/08/10 Javascript
JavaScript事件发布/订阅模式原理与用法分析
2018/08/21 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
2018/11/06 Javascript
详解Vue.js自定义tipOnce指令用法实例
2018/12/19 Javascript
微信小程序时间选择插件使用详解
2018/12/28 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
Python中字符串的常见操作技巧总结
2016/07/28 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python实现自动发送邮件
2018/06/20 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
Python对wav文件的重采样实例
2020/02/25 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
中国专业的音频分享平台:喜马拉雅
2019/05/24 全球购物
销售副总经理岗位职责
2013/12/11 职场文书
马云的职业生涯规划之路
2014/01/01 职场文书
求职自荐信怎么写
2015/03/04 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers