Gostaria de criar um buffer de cadeia para processar, formatar e finalmente gravar o buffer em um arquivo de texto usando uma sprintf
funcionalidade de estilo C em Python. Por causa de instruções condicionais, não posso gravá-las diretamente no arquivo.
por exemplo, pseudo código:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Portanto, no arquivo de saída, temos este tipo de o / p:
A= foo B= bar
C= ded
etc...
Edite, para esclarecer minha pergunta:
buf
é um grande buffer que contém todas essas strings que foram formatadas usando o sprintf. Seguindo seus exemplos, buf
conterá apenas valores atuais, não valores mais antigos. por exemplo, o primeiro em buf
que escrevi A= something ,B= something
mais tarde C= something
foi anexado no mesmo buf
, mas em suas respostas em Python buf
contém apenas o último valor, o que não é o que eu quero - quero buf
ter todos os printf
s que fiz desde o início, como em C
.
def sprintf(buf, fmt, *args): ...
buf
e não no final.) Provavelmente seria melhor usar uma matriz de seqüências de caracteres e juntá-las antes de gravar no arquivo.