擅长:python、mysql、java
<p>我不完全确定我是否理解您的目标,但您可以使用<code>StringIO</code>实例作为缓冲:</p>
<pre><code>>>> import StringIO
>>> buf = StringIO.StringIO()
>>> buf.write("A = %d, B = %s\n" % (3, "bar"))
>>> buf.write("C=%d\n" % 5)
>>> print(buf.getvalue())
A = 3, B = bar
C=5
</code></pre>
<p>与<code>sprintf</code>不同,您只需将字符串传递给<code>buf.write</code>,然后使用<code>%</code>运算符或字符串的<code>format</code>方法对其进行格式化。</p>
<p>当然,您可以定义一个函数来获得希望的<code>sprintf</code>接口:</p>
<pre><code>def sprintf(buf, fmt, *args):
buf.write(fmt % args)
</code></pre>
<p>它的用途如下:</p>
<pre><code>>>> buf = StringIO.StringIO()
>>> sprintf(buf, "A = %d, B = %s\n", 3, "foo")
>>> sprintf(buf, "C = %d\n", 5)
>>> print(buf.getvalue())
A = 3, B = foo
C = 5
</code></pre>