我想创建一个字符串缓冲区来执行大量处理,格式并最终在Python中使用C风格sprintf
功能将文本缓冲区写入文本文件中。由于条件语句,我不能直接将它们写入文件。sprintf喜欢Python中的功能
如伪代码:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
所以我们有这样的O/P的输出文件:
A= foo B= bar
C= ded
etc...
编辑,澄清我的问题:
buf
是大缓冲区包含所有使用sprintf格式化的字符串。 通过你的例子,buf
将只包含当前值,而不是旧值。 例如首先在buf
我写A= something ,B= something
后C= something
在同一buf
被追加,但在你的Python回答buf
只包含最后一个值,这不是我想要的 - 我想buf
有所有printf
小号从一开始我都做了,如在C
中那样。
这是一个很好的问题,我认为没有回答这些问题接近解决这一点。我不想做类似“%s%s%s”%(a,b,c)的东西,我想提供一个函数参数列表并在输出中看到一个字符串。 – dividebyzero 2013-01-10 16:23:00
这不是sprintf()在C中的工作方式(它在'buf'的开头写入内容,而不是在末尾)。最好使用字符串数组,然后在写入之前将它们结合在一起到文件。 – yam655 2013-05-05 02:33:53