最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python腳本替換指定行實(shí)現(xiàn)步驟

 更新時(shí)間:2017年07月11日 17:15:53   作者:ykdsg  
這篇文章主要介紹了 python腳本替換指定行實(shí)現(xiàn)步驟的相關(guān)資料,需要的朋友可以參考下

 python腳本替換指定行實(shí)現(xiàn)步驟

       本文主要介紹了Python的腳本替換,由于工作的需要,必須對(duì)日志系統(tǒng)進(jìn)行更新,這里在網(wǎng)上搜索到一篇文章比較不錯(cuò),這里記錄下,大家可以參考下,

工作中需要遷移代碼,并把原來(lái)的日志系統(tǒng)更新到現(xiàn)在的格式,原來(lái)獲取log的格式是

AuctionPoolLoggerUtil.getLogger() 

現(xiàn)在獲取log的格式是:

LoggerFactory.getLogger(XXXXX.class) 

這里的XXXXX需要替換為當(dāng)前的類(lèi)名。如果這樣的java文件不多還好,可以一個(gè)個(gè)人肉替換。一旦這樣的文件很多,特別是遷移過(guò)來(lái)大量的文件時(shí),你就會(huì)發(fā)現(xiàn)簡(jiǎn)直是一場(chǎng)災(zāi)難。其實(shí)我們發(fā)現(xiàn)上面的工作很多是機(jī)械單調(diào)的。ide中的替換功能不能做到的是把XXXXX替換成當(dāng)前的類(lèi)名。而python很容易處理文本,利用正則表達(dá)式可以比較方便的拿到類(lèi)名,然后替換掉xxxxx就可以了。

實(shí)現(xiàn)代碼:

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 后面需要有, 否則會(huì)出現(xiàn)多余的空行 
          print line.replace('XXXXX',className), 
        else: 
          print line, 
 
 
def search(): 
  os.path.walk(packDir,processDirectory,None) 
 
if __name__ == '__main__': 
  search() 

上面的腳本中大部分是fileinput.input的注釋?zhuān)褪钦f(shuō)了inplace=1其實(shí)就是把源文件的內(nèi)容放到緩存區(qū),然后直接將內(nèi)容寫(xiě)入源文件

findClassNameP 是查找class name的正則表達(dá)式,上面的邏輯就是對(duì)文件逐行分析,拿到class name。然后再分析當(dāng)前行是否有xxxxx,有的話就用class name 替換,沒(méi)有的話就原行輸出。

       以上使用對(duì)python腳本替換指定行的簡(jiǎn)單實(shí)例,如果大家有疑問(wèn)或者更好的方法可以留言討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • python如何批量讀取.mat文件并保存成.npy

    python如何批量讀取.mat文件并保存成.npy

    這篇文章主要介紹了python如何批量讀取.mat文件并保存成.npy問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python3 使用openpyxl將mysql數(shù)據(jù)寫(xiě)入xlsx的操作

    python3 使用openpyxl將mysql數(shù)據(jù)寫(xiě)入xlsx的操作

    這篇文章主要介紹了python3 使用openpyxl將mysql數(shù)據(jù)寫(xiě)入xlsx的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • python中最小二乘法詳細(xì)講解

    python中最小二乘法詳細(xì)講解

    在本篇文章里小編給大家整理的是一篇關(guān)于python中最小二乘法詳細(xì)講解內(nèi)容,需要的朋友們可以參考下。
    2021-02-02
  • Python基于SMTP發(fā)送郵件的方法

    Python基于SMTP發(fā)送郵件的方法

    這篇文章主要介紹了Python基于SMTP 發(fā)送郵件的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • Python無(wú)頭爬蟲(chóng)下載文件的實(shí)現(xiàn)

    Python無(wú)頭爬蟲(chóng)下載文件的實(shí)現(xiàn)

    這篇文章主要介紹了Python無(wú)頭爬蟲(chóng)下載文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python yield的用法實(shí)例分析

    Python yield的用法實(shí)例分析

    這篇文章主要介紹了Python yield的用法,結(jié)合實(shí)例形式分析了Python yield的基本功能、使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Python通過(guò)websocket與js客戶端通信示例分析

    Python通過(guò)websocket與js客戶端通信示例分析

    網(wǎng)站大多使用 HTTP 協(xié)議通信,而 HTTP 是無(wú)連接的協(xié)議。只有客戶端請(qǐng)求時(shí),服務(wù)器端才能發(fā)出相應(yīng)的應(yīng)答, HTTP 請(qǐng)求的包也比較大,如果只是很小的數(shù)據(jù)通信,開(kāi)銷(xiāo)過(guò)大。于是,我們可以使用 websocket 這個(gè)協(xié)議,用最小的開(kāi)銷(xiāo)實(shí)現(xiàn)面向連接的通信。
    2014-06-06
  • Python繪制動(dòng)態(tài)水球圖過(guò)程詳解

    Python繪制動(dòng)態(tài)水球圖過(guò)程詳解

    這篇文章主要介紹了Python繪制動(dòng)態(tài)水球圖過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • python模擬登陸網(wǎng)站的示例

    python模擬登陸網(wǎng)站的示例

    這篇文章主要介紹了python模擬登陸網(wǎng)站的示例,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • 通過(guò)Python編程將CSV文件導(dǎo)出為PDF文件的方法

    通過(guò)Python編程將CSV文件導(dǎo)出為PDF文件的方法

    CSV文件通常用于存儲(chǔ)大量的數(shù)據(jù),而PDF文件則是一種通用的文檔格式,便于與他人共享和打印,將CSV文件轉(zhuǎn)換成PDF文件可以幫助我們更好地管理和展示數(shù)據(jù),本文將介紹如何通過(guò)Python編程將CSV文件導(dǎo)出為PDF文件,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

瑞安市| 靖宇县| 渭南市| 北流市| 芜湖县| 西和县| 凤台县| 隆回县| 广水市| 辉县市| 红安县| 米林县| 马尔康县| 嵊州市| 察哈| 留坝县| 太白县| 铜梁县| 青铜峡市| 石狮市| 南召县| 集贤县| 常宁市| 漳平市| 仪征市| 民和| 宾川县| 淄博市| 玛纳斯县| 雅江县| 东宁县| 绵阳市| 海盐县| 登封市| 桑日县| 邵武市| 平武县| 阳城县| 淳安县| 闽侯县| 澄城县|