gpt4 book ai didi

python - 解析具有 "magic"值的文本文件

转载 作者:行者123 更新时间:2023-11-28 20:34:24 25 4
gpt4 key购买 nike

背景

我有一些大型文本文件用于音频调谐的自动化脚本。文本文件中的每一行看起来大致如下:

A[BANANA] + B[PINEAPPLE] - C[CHERRY] [[BANANA]] BANANA # BANANA

文本被输入到一个旧的命令行程序,该程序搜索关键字并将它们换掉。示例输出为:

A[0] + B[100] - C[0x1000] [[0]] 0 # 0
A[2] + B[200] - C[0x100A] [[2]] 0 # 0

问题

有时,文本文件中的关键字本应保持不变(即我们不希望替换“BANANA”的情况)。我想修改文本文件以使用某种在正常情况下不太可能弹出的关键字/定界符,即:

A[#1] + B[#2] - C[#3] [[#1]] #1 # #1

问题

python 的文本文件解析器是否有任何我可以使用的特殊索引/转义序列来代替简单的关键字?

最佳答案

在字典中使用正则表达式替换函数

匹配括号之间的所有内容(非贪婪,避免括号本身)并替换为dict的值,如果找不到则放置原始值:

import re

d = {"BANANA":"12", "PINEAPPLE":"20","CHERRY":"100","BANANA":"400"}
s = "A[BANANA] + B[PINEAPPLE] - C[CHERRY] [[BANANA]]"

print(re.sub("\[([^\[\]]*)\]",lambda m : "[{}]".format(d.get(m.group(1),m.group(1))),s))

打印:

A[400] + B[20] - C[100] [[400]]

关于python - 解析具有 "magic"值的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48549204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com