国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - python批量替換多文件字符串問題詳解

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

2021-02-04 00:32Mike_Zhang Python

批量替換是我們在日常工作中經常會遇到的一個問題,下面這篇文章主要給大家介紹了關于python批量替換多文件字符串問題的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧。

系統如下:

操作系統 : CentOS7.3.1611_x64

Python 版本 : 2.7.5

問題描述

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

解決方案

使用sed

sed和grep結合使用可以替換當前文件夾多個文件的內容。

格式 :

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

示例代碼:

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

使用Python

使用Python腳本可以實現替換當前文件夾多個文件的內容。

替換單個文件的代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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

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

完整示例代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#! /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)

添加可執行權限:

?
1
chmod a+x replaceMulti.py

使用示例:

?
1
./replaceMulti.py writeBuffer write_buffer

將當前文件夾中所有 writeBuffer 替換為 write_buffer

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

?
1
2
3
4
5
[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 所在目錄加入環境變量即可。

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://www.cnblogs.com/MikeZhang/p/replaceMulti20180421.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 色av网 | 欧美日韩精品电影 | 国产美女精品视频 | 欧美日在线| 五月天婷婷色综合 | 亚洲一区二区av | 精品亚洲一区二区 | 欧美亚洲在线 | 日本va欧美va精品发布 | 欧美日韩精品免费 | av午夜电影| av一区二区在线观看 | www.久久99| 国产在线观看免费 | 日韩精品久久久久久 | 日韩精品在线观看视频 | 中文成人在线 | 日韩在线观看一区二区 | 99久久久久久 | 久久久久国产精品 | 欧美一级久久 | 中文字幕一区二区三区四区五区 | 久久国产精品一区 | 久久综合九色综合欧美狠狠 | 国产精品国产精品国产专区不片 | 欧美日韩第一页 | 日韩高清国产一区在线 | 亚洲91av | 精品免费视频 | 欧美日日 | 日韩在线精品 | 色播av| 国产成人高清视频 | 一区二区精品视频 | 日韩精品久久久 | 小情侣高清国产在线播放 | 久久精品久久综合 | 亚洲视频在线看 | 中文字幕日产乱码六区小草 | 国产美女精品视频免费观看 | 凹凸国产成人精品视频免费 |