Me gustaría crear un buffer de cadena para hacer mucho procesamiento, formatear y finalmente escribir el buffer en un archivo de texto usando una sprintf
funcionalidad de estilo C en Python. Debido a las declaraciones condicionales, no puedo escribirlas directamente en el archivo.
por ejemplo, seudocódigo:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Entonces, en el archivo de salida tenemos este tipo de o / p:
A= foo B= bar
C= ded
etc...
Editar, para aclarar mi pregunta:
buf
es un gran búfer que contiene todas estas cadenas que se han formateado con sprintf. Siguiendo sus ejemplos, buf
solo contendrá valores actuales, no valores anteriores. por ejemplo, lo primero buf
que escribí A= something ,B= something
más tarde C= something
se agregó en el mismo buf
, pero en sus respuestas de Python buf
contiene solo el último valor, que no es lo que quiero, quiero buf
tener todos los printf
mensajes que he hecho desde el principio, como en C
.
def sprintf(buf, fmt, *args): ...
buf
, no al final). Probablemente funcionaría mejor usar una matriz de cadenas, luego unirlas antes de escribir en el archivo.