全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

python脚本替换指定行实现步骤

 python脚本替换指定行实现步骤

       本文主要介绍了Python的脚本替换,由于工作的需要,必须对日志系统进行更新,这里在网上搜索到一篇文章比较不错,这里记录下,大家可以参考下,

工作中需要迁移代码,并把原来的日志系统更新到现在的格式,原来获取log的格式是

AuctionPoolLoggerUtil.getLogger() 

现在获取log的格式是:

LoggerFactory.getLogger(XXXXX.class) 

这里的XXXXX需要替换为当前的类名。如果这样的java文件不多还好,可以一个个人肉替换。一旦这样的文件很多,特别是迁移过来大量的文件时,你就会发现简直是一场灾难。其实我们发现上面的工作很多是机械单调的。ide中的替换功能不能做到的是把XXXXX替换成当前的类名。而python很容易处理文本,利用正则表达式可以比较方便的拿到类名,然后替换掉xxxxx就可以了。

实现代码:

import fileinput 
import os 
import re 
 
__author__ = 'ykdsg' 
 
packDir='/Users/ykdsg/svn_workspace/auctionplatform/misc_refactory/auctionplatform/ap-biz/src/main/java/com/yk/misccenter' 
#查找class name 
findClassNameP=re.compile(r"(?<=class\s)\w*") 
findXP=re.compile(r"XXXXX") 
 
 
def processDirectory(args,dirname,filenames): 
  # print 'Directory',dirname 
  for filename in filenames: 
 
    if os.path.splitext(filename)[1]=='.java': 
      # print 'file',filename 
      fullFileUrl=dirname+ "/"+filename 
      fileObj=open(fullFileUrl) 
      className='' 
      # Optional in-place filtering: if the keyword argument inplace=1 is passed to fileinput.input() or to 
      # the FileInput constructor, the file is moved to a backup file and standard output is directed to the 
      # input file (if a file of the same name as the backup file already exists, it will be replaced silently) 
      # . This makes it possible to write a filter that rewrites its input file in place. If the backup 
      # parameter is given (typically as backup='.<some extension>'), it specifies the extension for the 
      # backup file, and the backup file remains around; by default, the extension is '.bak' and it is deleted 
      # when the output file is closed. In-place filtering is disabled when standard input is read. 
      for line in fileinput.input(fullFileUrl, inplace=1): 
        matchClass = findClassNameP.search(line) 
        if matchClass: 
          className = matchClass.group() 
        matchX=findXP.search(line) 
        if matchX: 
          #print 后面需要有, 否则会出现多余的空行 
          print line.replace('XXXXX',className), 
        else: 
          print line, 
 
 
def search(): 
  os.path.walk(packDir,processDirectory,None) 
 
if __name__ == '__main__': 
  search() 

上面的脚本中大部分是fileinput.input的注释,就是说了inplace=1其实就是把源文件的内容放到缓存区,然后直接将内容写入源文件

findClassNameP 是查找class name的正则表达式,上面的逻辑就是对文件逐行分析,拿到class name。然后再分析当前行是否有xxxxx,有的话就用class name 替换,没有的话就原行输出。

       以上使用对python脚本替换指定行的简单实例,如果大家有疑问或者更好的方法可以留言讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# python脚本替换  # python  # 脚本替换日志系统  # python在文本开头插入一行的实例  # Python创建文件和追加文件内容实例  # Python实现删除文件中含“指定内容”的行示例  # 利用Python在一个文件的头部插入数据的实例  # Python实现给文件添加内容及得到文件信息的方法  # Python实现替换文件中指定内容的方法  # Python实现修改文件内容的方法分析  # Python修改文件往指定行插入内容的实例  # 的是  # 说了  # 不多  # 很容易  # 希望能  # 然后再  # 正则表达式  # 就用  # 谢谢大家  # 你就会  # 并把  # 则会  # 中大  # 一篇文章  # 就可以  # 新到  # 人肉  # 替换成  # 在网上  # 行输出 


相关文章: 成都网站制作公司哪家好,四川省职工服务网是做什么用?  建站之星在线版空间:自助建站+智能模板一键生成方案  建站之星如何快速生成多端适配网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  建站之星各版本价格是多少?  金*站制作公司有哪些,金华教育集团官网?  如何用搬瓦工VPS快速搭建个人网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  网站制作难吗安全吗,做一个网站需要多久时间?  桂林网站制作公司有哪些,桂林马拉松怎么报名?  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  南宁网站建设制作定制,南宁网站建设可以定制吗?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  如何在西部数码注册域名并快速搭建网站?  香港服务器部署网站为何提示未备案?  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  建站168自助建站系统:快速模板定制与SEO优化指南  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  ,如何利用word制作宣传手册?  建站上传速度慢?如何优化加速网站加载效率?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  做企业网站制作流程,企业网站制作基本流程有哪些?  定制建站流程解析:需求评估与SEO优化功能开发指南  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何在橙子建站上传落地页?操作指南详解    青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  上海网站制作开发公司,上海买房比较好的网站有哪些?  微课制作网站有哪些,微课网怎么进?  建站主机如何选?性能与价格怎样平衡?  开封网站制作公司,网络用语开封是什么意思?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何快速搭建个人网站并优化SEO?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何在阿里云域名上完成建站全流程?  营销式网站制作方案,销售哪个网站招聘效果最好?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  网站app免费制作软件,能免费看各大网站视频的手机app?  如何用wdcp快速搭建高效网站?  Swift中swift中的switch 语句  如何通过主机屋免费建站教程十分钟搭建网站?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  建站之星上传入口如何快速找到?  如何有效防御Web建站篡改攻击?  如何彻底卸载建站之星软件? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。