python - 在编写配置文件时使用 ConfigParser 而不是常规的 python.py 文件有什么好处?

标签 python configuration module configuration-files

我使用ConfigParser 模块编写配置文件已有一段时间了。但是,最近有一个想法打动了我;为什么不直接使用纯 Python 呢?以这个示例配置文件为例:

[parameters]
# Host
host = stackoverflow.com
port = 22

为了将这些值读入我的代码,我这样做了

import ConfigParser
config = ConfigParser.SafeConfigParser()
config.read('host.cfg')

host = config.get('parameters', 'host')
port = config.get('parameters', 'port')

另一方面,如果我有这样的配置文件:

# Host
host = 'stackoverflow.com'
port = 22

在我的主要代码中,我可以这样做:

from host_cfg import *

那么使用 ConfigParser 模块有什么好处呢?每种方法的优缺点是什么?

最佳答案

So what do I gain from using the ConfigParser module?

与 Windows .ini 文件的兼容性。让一些人开心。

What are the pros and cons of each approach?

ConfigParser 语法有限,一些相对简单的东西变得非常做作。查看 logging 示例。

Python 语法更简单,更易于使用。没有安全漏洞,因为当他们可以简单地破解您的源代码时,没有人会浪费时间破解配置文件。事实上,他们可以破解大部分内置的 Python 库。就此而言,他们可以自己 cooking Python 解释器。

当您的应用程序源代码中的其他地方存在更容易利用的漏洞时,没有人会浪费时间破解配置文件。

关于python - 在编写配置文件时使用 ConfigParser 而不是常规的 python.py 文件有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4208323/

相关文章:

python - 在 Python 中更改 XML 值

java - <context :annotation-config> and <context:component-scan> 之间的区别

python - 插入很多产品opencart脚本

git - 如何为 CI 组织两个 git repos

python - 获取元组字典中元组最大组件的键

python - 如何使用 python filecmp 忽略不同的换行符

python正则表达式获取字符串后的值

mysql - sql连接因负载耗尽怎么办

svn 和 nano 问题

python - Caffe 未在 python 中导入