Vorrei creare un buffer di stringhe per eseguire molte elaborazioni, formattare e infine scrivere il buffer in un file di testo utilizzando una sprintffunzionalità 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, bufconterrà solo i valori correnti, non quelli precedenti. ad esempio, il primo in cui bufho scritto in A= something ,B= somethingseguito è C= somethingstato aggiunto nello stesso buf, ma nelle risposte di Python bufcontiene solo l'ultimo valore, che non desidero: voglio bufavere tutti printfi 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.