我的配置文件中有这样的东西(一个包含字符串列表的配置选项):
[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/