試圖做一個搜索/使用通配符上的文本文件的內容在python替換:搜索和文本文件替換字符串中使用通配符
如果文本文件的內容是這樣的:
"all_bcar_v0038.ma"; "all_bcar_v0002.ma"; "all_bcar_v0011.ma"; "all_bcar_v0011.ma";
尋求與V1000,以取代所有的版本號得到這個:
"all_bcar_v1000.ma"; "all_bcar_v1000.ma"; "all_bcar_v1000.ma"; "all_bcar_v1000.ma";
,並有文件寫出來。
我已經試過以下,但發生的事情是該腳本只抓住第一個版本號,留下其餘不變:
def replaceAll(file,searchExp,replaceExp):
for line in fileinput.input(file, inplace=1):
if searchExp in line:
line = line.replace(searchExp,replaceExp)
sys.stdout.write(line)
rigs = ['all_bcar']
rigs_latest = ['all_bcar_v1000']
old_pattern = []
old_compiled = []
old = []
old_version = []
for rig in range(len(rigs)):
old_pattern.append("/" + rigs[rig] + "_(.*).ma")
fin = open(txt_file, "r")
old_compiled.append(re.compile(old_pattern[rig]))
old.append(old_compiled[rig].search(fin.read()))
old_version.append(old[rig].group(1).strip())
old_rig = (rigs[rig] + "_" + old_version[rig])
replaceAll(txt_file,old_rig,rigs_latest[rig])
fin.close()
不知道如何讓搜索循環尋找其他的版本,並避免已被替換的版本,跳過任何等於「v1000」的版本。
哇,我是浪費了大量的線條。謝謝! – user971701