在Python Config fi中处理包含转义字符的参数

2024-04-19 01:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个正在使用以下代码读取的配置文件:

import configparser as cp
config = cp.ConfigParser()
config.read('MTXXX.ini')
MT=identify_MT(msgtext)
schema_file = config.get(MT,'kbfile')
fold_text = config.get(MT,'fold')

配置文件的相关部分如下所示:

^{pr2}$

稍后,我尝试查找字典中包含的与“fold”参数匹配的文本,我发现如果使用以下函数找到该文本:

    def test (find_text)
        return {k for k, v in dictionary.items() if find_text in v}

如果我用两种方法之一调用该函数,会得到不同的结果:

test(fold_text)

找不到我想要的数据,但是:

test(':16S:TRANSDET\n')

返回结果I知道是否存在。在

而且,如果我打印字典的内容,我可以看到,正如预期的那样,它显示为

:16S:TRANSDET\n

所以,当我直接输入搜索文本时,它匹配,但是当我从配置文件加载相同的文本时,它找不到匹配。在

我猜在从配置文件中读取/处理字符模式时,这里应用了一些魔法,但不知道如何使其按我希望的方式工作。在

我希望能够使用转义字符参数化,但似乎由于一些内部机制,我无法这样做。在

是否有一些开关可以应用到配置读取器,或者可以进行一些额外的解析来获得我想要的行为?或许还有其他的解决办法。我确实觉得configparser模块使用起来很方便,但这可能是一个限制,它需要一个替代的,甚至是自建的模块来从参数文件中提取数据。在


Tags: 函数textintest文本config参数get