python 替换文本 通配符_使用通配符搜索和替换文本文件中的字符串

博客围绕在Python中对文本文件内容用通配符搜索/替换版本号展开。给出文本文件示例,希望将所有版本号替换为v1000。作者尝试的方法仅捕获第一个版本号,其他不变,现不知如何保持搜索循环查找其他版本,且避免已替换和等于v1000的版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

尝试在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”的版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值