Vorrei creare un buffer di stringhe per eseguire molte elaborazioni, formattare e infine scrivere il buffer in un file di testo utilizzando una sprintf
funzionalità di tipo C in Python. A causa delle istruzioni condizionali, non riesco a scriverle direttamente nel file.
ad esempio pseudo codice:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
Quindi nel file di output abbiamo questo tipo di o / p:
A= foo B= bar
C= ded
etc...
Modifica, per chiarire la mia domanda:
buf
è un grosso buffer che contiene tutte queste stringhe che sono state formattate usando sprintf. Seguendo i tuoi esempi, buf
conterrà solo i valori correnti, non quelli precedenti. ad esempio, il primo in cui buf
ho scritto in A= something ,B= something
seguito è C= something
stato aggiunto nello stesso buf
, ma nelle risposte di Python buf
contiene solo l'ultimo valore, che non desidero: voglio buf
avere tutti printf
i messaggi che ho fatto dall'inizio, come in C
.
def sprintf(buf, fmt, *args): ...
buf
, non alla fine.) Probabilmente funzionerebbe meglio per usare una matrice di stringhe, quindi unirle prima di scrivere nel file.