<p>考虑使用普通的Python文件作为配置文件。</p>
<p>示例(<code>example.conf</code>):</p>
<pre><code># use normal python comments
value1 = 32
value2 = u"A unicode value"
value3 = "A plain string value"
value4 = ["lists", "are", "handy"]
value5 = {"and": "so", "are": "dictionaries"}
</code></pre>
<p>在程序中,使用<code>execfile</code>(<a href="http://docs.python.org/library/functions.html#execfile">2.7 docs</a>)加载配置文件:</p>
<pre><code>if __name__ == "__main__":
config = {}
execfile("example.conf", config)
# python 3: exec(open("example.conf").read(), config)
print config["value1"]
print config["value5"]
</code></pre>
<p>我喜欢这种方法,原因如下:</p>
<ul>
<li>在简单的情况下,格式和INI样式的配置文件一样容易编写。它还与INI文件共享一个重要的特性:它非常适合版本控制(这对于XML和JSON来说不太正确)</li>
<li>我喜欢在实际编程语言中使用配置文件所带来的灵活性。</li>
</ul>
<p>这种方法被广泛使用,例如:</p>
<ul>
<li>Django站点的设置位于<a href="https://docs.djangoproject.com/en/1.3/topics/settings/">settings.py</a>中。Django不使用<code>execfile</code>,它使用<code>import</code>读取/执行<code>settings.py</code>AFAIK,但最终结果是相同的:设置文件中的代码被执行。</li>
<li>bash shell在启动时读取并执行<code>~/.bashrc</code>。</li>
<li>Python解释器在启动时导入(并执行)<code>site.py</code>。</li>
</ul>