Python基于正则表达式实现文件内容替换的方法
作者:Einzelkampfer 时间:2023-08-23 00:14:09
本文实例讲述了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程序设计有所帮助。
来源:http://blog.csdn.net/u012862140/article/details/39011881
标签:Python,正则表达式,替换
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
nicedit 轻量级编辑器 使用心得
2023-03-03 23:49:08
Python制作刷网页流量工具
2021-10-21 00:23:28
Django更新models数据库结构步骤
2024-01-16 09:05:25
![](https://img.aspxhome.com/file/2023/7/133797_0s.jpg)
MySQL中的多表联合查询功能操作
2024-01-21 07:21:30
![](https://img.aspxhome.com/file/2023/9/68049_0s.jpg)
如何用python合并多个excel文件
2022-08-23 19:30:24
![](https://img.aspxhome.com/file/2023/2/81822_0s.png)
利用python-pypcap抓取带VLAN标签的数据包方法
2021-03-15 04:46:20
![](https://img.aspxhome.com/file/2023/2/83892_0s.jpg)
聊聊Golang的语言结构和变量问题
2024-04-29 13:05:00
![](https://img.aspxhome.com/file/2023/8/133928_0s.png)
三种不同方式连接MySQL数据库的方法及示例
2010-06-11 13:37:00
mysql提示Changed limits: max_open_files: 2048 max_connections: 1910 table_cache: 64的解决
2024-01-23 11:01:32
在Django中实现添加user到group并查看
2021-12-08 21:47:07
OpenCV+MediaPipe实现手部关键点识别
2021-08-02 10:32:24
![](https://img.aspxhome.com/file/2023/4/114744_0s.png)
PHP Laravel门面的实现原理详解
2023-05-25 06:42:36
T-SQL中使用正则表达式函数
2024-01-27 13:36:58
解决Mac node版本升级失败的问题
2024-05-13 09:34:52
python tqdm库的使用
2023-10-30 22:32:44
![](https://img.aspxhome.com/file/2023/9/131009_0s.png)
Python实战实现爬取天气数据并完成可视化分析详解
2022-01-04 09:33:44
![](https://img.aspxhome.com/file/2023/6/89126_0s.png)
Python转换itertools.chain对象为数组的方法
2022-10-27 08:38:16
vue实现表单验证功能
2024-06-05 10:03:59
![](https://img.aspxhome.com/file/2023/2/122002_0s.jpg)
关于golang 字符串 int uint int64 uint64 互转问题
2023-07-13 17:52:44
SQL Server中使用sp_password重置SA密码实例
2024-01-20 15:07:59