尝试在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 replace all (文件、搜索exp、替换exp ) :
forlineinfileinput.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=[]
forriginrange(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 ] )
替换全部(txt _ file,old_rig,rigs_latest[rig] ) ) )。
fin.close () )
我不知道如何保持搜索周期以搜索其他版本,避免被替换的版本,并跳过等于" v1000 "的版本。