擅长:python、mysql、java
<p>您可以改为使用<a href="http://docs.python.org/library/stringio.html" rel="nofollow">StringIO</a>,它将内容保留在RAM中:</p>
<pre><code>import cStringIO
fout = cStringIO.StringIO()
fout.write("[ALL]\n")
with open(self._inFilename) as fobj:
fout.write(fobj.read())
fout.seek(0)
config = ConfigParser.RawConfigParser(allow_no_value=True)
config.readfp(fout)
</code></pre>
<p>请注意,与您的代码相比,有一些优化,这对您很重要:</p>
<ol>
<li>始终安全地关闭文件。这是用<code>with</code>语句完成的。在</li>
<li>迭代输入的每个字符并编写它。这是不必要的,也是一个严重的性能缺陷。在</li>
</ol>
<p>作为<code>ConfigParser</code>的替代方案,我真的推荐<a href="http://www.voidspace.org.uk/python/configobj.html" rel="nofollow">^{<cd3>}</a>库,它有一个更干净、更pythonic的API(并且不需要默认部分)。示例:</p>
^{pr2}$