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

poo*_*zko 9 python list configuration-files configparser python-3.x

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

[filters]
filtersToCheck = ['foo', '192.168.1.2', 'barbaz']
Run Code Online (Sandbox Code Playgroud)

是否有更优雅(内置)的方法从filtersToCheck获取列表而不是删除括号,单引号,空格然后使用split()它?也许一个不同的模块?

(使用python3.)

Sen*_*ran 14

您不能像配置文件的值中的列表一样使用python对象.但你可以把它们当作逗号分隔的值,一旦你得到它就做分裂

[filters]
filtersToCheck = foo,192.168.1.2,barbaz
Run Code Online (Sandbox Code Playgroud)

并做

filtersToCheck = value.split(',')
Run Code Online (Sandbox Code Playgroud)

另一种方法是当然,继承SafeConfigParser类并删除[和]并构建列表.你认为这很难看,但这是一个可行的解决方案.

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