亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python批量替換多文件字符串問題詳解

 更新時(shí)間:2018年04月22日 15:06:25   作者:Mike_Zhang  
批量替換是我們在日常工作中經(jīng)常會遇到的一個(gè)問題,下面這篇文章主要給大家介紹了關(guān)于python批量替換多文件字符串問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

系統(tǒng)如下:

操作系統(tǒng) : CentOS7.3.1611_x64

Python 版本 : 2.7.5

問題描述

編碼過程中有時(shí)候會遇到在多個(gè)源文件中存在同一個(gè)變量名(比如 : writeBuffer),需要替換為新的變量名(比如 : write_buffer)的問題。 怎么能方便快捷的解決該問題呢?

解決方案

使用sed

sed和grep結(jié)合使用可以替換當(dāng)前文件夾多個(gè)文件的內(nèi)容。

格式 :

sed -i 's/原字符串/新字符串/g' `grep  -rl 原字符串 所在目錄`

示例代碼:

sed -i 's/writeBuffer/write_buffer/g' `grep -rl writeBuffer  ./*`

使用Python

使用Python腳本可以實(shí)現(xiàn)替換當(dāng)前文件夾多個(gè)文件的內(nèi)容。

替換單個(gè)文件的代碼如下:

def doReplace(fpath,src,dst):
 newConent,bFlag = "",False
 with open(fpath,"rb") as fin:
 for line in fin :
  if line.find(src) == -1 :
  newLine = line
  else:
  bFlag = True
  newLine = line.replace(src,dst)
  newConent += newLine
 if not bFlag : return None
 print fpath
 with open(fpath,"wb") as fout:
 fout.write(newConent)
 return None

替換多個(gè)文件僅需添加目錄遍歷代碼。

完整示例代碼如下:

#! /usr/bin/python
#-*- coding: utf-8 -*- 

import os,sys

def doReplace(fpath,src,dst):
 newConent,bFlag = "",False
 with open(fpath,"rb") as fin:
 for line in fin :
  #if len(line.strip()) == 0 : continue
  if line.find(src) == -1 :
  newLine = line
  else:
  bFlag = True
  newLine = line.replace(src,dst)
  newConent += newLine
 if not bFlag : return None
 print fpath
 with open(fpath,"wb") as fout:
 fout.write(newConent)
 return None

def replaceMain(dirName,src,dst):
 for root, dirs, files in os.walk(dirName):
 for name in files:
  fpath = os.path.join(root, name)
  doReplace(fpath,src,dst)
 return None

if __name__ == "__main__":
 if len(sys.argv) < 3 :
 print "usage : replaceMulti srcStr dstStr"
 print "replace current dir files"
 sys.exit(1)
 srcStr = sys.argv[1]
 dstStr = sys.argv[2]
 dirName = "."
 dirName = os.path.realpath(dirName)
 print "working dir :",dirName
 replaceMain(dirName,srcStr,dstStr)

添加可執(zhí)行權(quán)限:

chmod a+x replaceMulti.py

使用示例:

./replaceMulti.py writeBuffer write_buffer

將當(dāng)前文件夾中所有 writeBuffer 替換為 write_buffer

也可以將 replaceMulti.py 放入 /usr/local/bin/ 目錄:

[root@local ~]# mv replaceMulti.py /usr/local/bin/
[root@local ~]# replaceMulti.py
usage : replaceMulti srcStr dstStr
replace current dir files
[root@local ~]#

該腳本在windows下也可以使用,將 replaceMulti.py 所在目錄加入環(huán)境變量即可。

好,就這些了,希望對你有幫助。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • python3如何獲取子線程中函數(shù)返回值

    python3如何獲取子線程中函數(shù)返回值

    這篇文章主要介紹了python3如何獲取子線程中函數(shù)返回值問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Python配置mysql的教程(推薦)

    Python配置mysql的教程(推薦)

    下面小編就為大家?guī)硪黄狿ython配置mysql的教程(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程

    Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程

    這篇文章主要介紹了Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 用Python的繪圖庫(matplotlib)繪制小波能量譜

    用Python的繪圖庫(matplotlib)繪制小波能量譜

    這篇文章主要介紹了用Python的繪圖庫(matplotlib)繪制小波能量譜,代碼簡單詳細(xì),思路清晰,需要的朋友可以參考下
    2021-04-04
  • 值得收藏的10道python 面試題

    值得收藏的10道python 面試題

    本文給大家分享值得收藏的10道python 面試題,非常不錯(cuò),具有一定收藏價(jià)值,需要的朋友可以參考下
    2019-04-04
  • Python轉(zhuǎn)碼問題的解決方法

    Python轉(zhuǎn)碼問題的解決方法

    在Python中,可以對String調(diào)用decode和encode方法來實(shí)現(xiàn)轉(zhuǎn)碼。
    2008-10-10
  • python讀取excel表格生成erlang數(shù)據(jù)

    python讀取excel表格生成erlang數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了python讀取excel表格生成erlang數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 9種python web 程序的部署方式小結(jié)

    9種python web 程序的部署方式小結(jié)

    python有很多web 開發(fā)框架,代碼寫完了,部署上線是個(gè)大事,通常來說,web應(yīng)用一般是三層結(jié)構(gòu)web server ---->application -----> DB server
    2014-06-06
  • [機(jī)器視覺]使用python自動識別驗(yàn)證碼詳解

    [機(jī)器視覺]使用python自動識別驗(yàn)證碼詳解

    這篇文章主要介紹了python自動識別驗(yàn)證碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Opencv判斷顏色相似的圖片示例代碼

    Opencv判斷顏色相似的圖片示例代碼

    這篇文章主要介紹了Opencv判斷顏色相似的圖片示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論