python - 使用 ConfigParser 从配置文件中获取列表

标签 python list python-3.x configuration-files configparser

我的配置文件中有这样的东西(一个包含字符串列表的配置选项):

[filters]
filtersToCheck = ['foo', '192.168.1.2', 'barbaz']

是否有更优雅(内置)的方式从 filtersToCheck 获取列表而不是删除括号、单引号、空格然后使用 split() 来做到这一点?也许是不同的模块?

(使用python3。)

最佳答案

您不能在配置文件的值中像列表一样使用 python 对象。但是你当然可以将它们作为逗号分隔值,一旦你得到它就进行拆分

[filters]
filtersToCheck = foo,192.168.1.2,barbaz

filtersToCheck = value.split(',')

另一种方法当然是子类化 SafeConfigParser 类并删除 [ 和 ] 并构建列表。您认为这很丑陋,但这是一个可行的解决方案。

第三种方法是使用 Python 模块作为配置文件。项目就是这样做的。只需将 filtersToCheck 作为 config.py 模块中可用的变量并使用列表对象即可。这是一个干净的解决方案。有些人担心使用 python 文件作为配置文件(将其称为安全隐患,这有点毫无根据的恐惧),但也有一些人认为用户应该编辑配置文件而不是用作配置文件的 python 文件。

关于python - 使用 ConfigParser 从配置文件中获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759016/

相关文章:

python Selenium 'click' 命令仅在第一个循环上

python - xslt 模板根标签,在文本输出中省略

c# - 从列表中获取值

Python从列表中提取第一个元素并清理字符串

python - 魔法 python 不工作

python-3.x - 使用 StratifiedShuffleSplit 时计算召回率指标

python - 在 python 中捕获 pytrends.exceptions.ResponseError 时出错

python - 带有 Xpath/BeautifulSoup 的 h3/h2 标签之间的 HTML

python - 通过不同的 python 脚本动态处理 getopt

angular - 如何制作可滚动的垫列表