ConfigParser与导入配置

时间:2011-11-09 15:53:09

标签: python configuration configparser import-module

ConfigParser是Python的much debated vanilla配置解析器 但是,你可以简单地import config config.py有python代码来设置配置参数。

这两种配置方法的优点是什么? 我应该什么时候选择?

4 个答案:

答案 0 :(得分:21)

我在import config看到的最大问题是,您不知道导入时会发生什么。是的,您将获得一组使用.样式界面自然引用的符号。但配置文件中的代码也可以做谁知道什么。现在,如果您完全信任您的用户,那么允许他们在配置文件中做任何他们想做的事情可能是件好事。但是,如果您有未知数量,或者您想要保护用户自己,那么使用更传统格式的配置文件将更安全,更安全。

答案 1 :(得分:7)

此完整性取决于您的脚本需求和目标。一种方式真的不是“更好”,只是不同。有关大多数pythons配置解析器(包括ConfigParserconfig模块)的详细讨论,请参阅:

Python Wiki - ConfigParserShootout

答案 2 :(得分:6)

“import config”非常简单,灵活且功能强大,但由于它可以执行任何操作,因此如果config.py不在安全的地方可能会有危险。

答案 3 :(得分:3)

IMO归结为个人风格。您是否打算让第三方编辑您的配置?如果是这样,也许有一种更“自然”的配置风格la ConfigParser是不合理的,这种风格不是技术性的,也可能不会超出目标受众的头脑。

许多受欢迎的项目(例如FabricDjango)使用“本机”配置样式,它实际上只是一个Python模块。法布里有fabfile.py,Django有settings.py

总的来说,使用本机导入模块的方法会更加灵活,因为你可以在该文件中做任何你想做的事情,包括定义函数,类等等,因为它只是你的另一个Python模块'进口。