zoukankan      html  css  js  c++  java
  • Python基于正则表达式实现文件内容替换的方法

    Python基于正则表达式实现文件内容替换的方法

    本文实例讲述了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('
      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 学习日记 第六天
    Python 学习日记 第五天
    Python 学习日记 第四天
    Redis 中的数据类型及基本操作
    Asp.net mvc 中View 的呈现(二)
    Asp.net mvc 中View的呈现(一)
    Asp.net mvc 中Action 方法的执行(三)
    Asp.net mvc 中Action 方法的执行(二)
    Asp.net mvc 中Action 方法的执行(一)
  • 原文地址:https://www.cnblogs.com/amengduo/p/9586289.html
Copyright © 2011-2022 走看看