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,正则表达式,替换
0
投稿

猜你喜欢

  • nicedit 轻量级编辑器 使用心得

    2023-03-03 23:49:08
  • Python制作刷网页流量工具

    2021-10-21 00:23:28
  • Django更新models数据库结构步骤

    2024-01-16 09:05:25
  • MySQL中的多表联合查询功能操作

    2024-01-21 07:21:30
  • 如何用python合并多个excel文件

    2022-08-23 19:30:24
  • 利用python-pypcap抓取带VLAN标签的数据包方法

    2021-03-15 04:46:20
  • 聊聊Golang的语言结构和变量问题

    2024-04-29 13:05:00
  • 三种不同方式连接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
  • 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
  • Python实战实现爬取天气数据并完成可视化分析详解

    2022-01-04 09:33:44
  • Python转换itertools.chain对象为数组的方法

    2022-10-27 08:38:16
  • vue实现表单验证功能

    2024-06-05 10:03:59
  • 关于golang 字符串 int uint int64 uint64 互转问题

    2023-07-13 17:52:44
  • SQL Server中使用sp_password重置SA密码实例

    2024-01-20 15:07:59
  • asp之家 网络编程 m.aspxhome.com