【问题标题】:Python escape delimiter in configuration file using ConfigParser使用 ConfigParser 在配置文件中的 Python 转义分隔符
【发布时间】:2018-06-21 05:04:36
【问题描述】:

我想将“:”和/或“=”作为配置文件中的名称转义。 有谁知道如何实现这一目标? 我尝试反斜杠“\”,它不起作用。

【问题讨论】:

  • 你能说得更具体点吗?是否要从配置文件中删除所有 :=
  • 不,我想在配置文件中使用冒号作为条目名称的一部分。例如将“Checked in "D:\bla\bla" 设置为 Checked in "D:\bla\bla=blabla 中的条目名称

标签: python escaping delimiter


【解决方案1】:

如果您使用的是 Python 3,则不需要。查看Customizing Parser Behavior 上的 Python 文档部分。默认情况下,configparser 使用“:”和“=”作为分隔符,但您可以在创建 configparser 对象时指定不同的分隔符:

import configparser

parser = configparser.ConfigParser(delimiters=('?', '*'))

在此示例中,默认分隔符已替换为问号和星号。您可以将分隔符更改为您想要的任何字符,不会与您需要放入配置文件的信息发生冲突。

上面列出的方法仅适用于 Python 3,因为 Python 2 ConfigParser 是硬编码的,可以将等号和冒号识别为分隔符。根据this SO questionhttps://pypi.python.org/pypi/configparser 有一个可用于 2.7 解释器的反向移植配置解析器。看看这是否适合你。

【讨论】:

  • 斯科特,谢谢你的回答。虽然这可能适用于 python 3,但在使用 python 2.7 时它总是遇到错误,并且看起来在 Python 2.7 文档中找不到关于自定义解析器行为的对应部分。 TypeError: __init__() 得到了一个意外的关键字参数“分隔符”
  • @DouglasGaskell 哪一部分不再起作用了? delimiters 仍然是 ConfigParser 对象 in 3.7.2 的有效输入参数。
猜你喜欢
  • 2021-01-13
  • 2011-05-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多