Ich möchte einen Zeichenfolgenpuffer erstellen, um viel zu verarbeiten, zu formatieren und schließlich den Puffer in eine Textdatei zu schreiben, wobei eine C-ähnliche sprintf
Funktionalität in Python verwendet wird. Aufgrund von bedingten Anweisungen kann ich sie nicht direkt in die Datei schreiben.
zB Pseudocode:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
In der Ausgabedatei haben wir also diese Art von O / P:
A= foo B= bar
C= ded
etc...
Bearbeiten, um meine Frage zu klären:
buf
Ist ein großer Puffer enthält alle diese Zeichenfolgen, die mit sprintf formatiert wurden. Wenn Sie sich Ihre Beispiele ansehen, buf
werden nur aktuelle Werte enthalten, keine älteren. zB wurde zuerst in, das buf
ich A= something ,B= something
später schrieb, C= something
dasselbe angehängt buf
, aber in Ihren Python-Antworten buf
ist nur der letzte Wert enthalten, den ich nicht möchte - ich möchte buf
alle printf
s haben, die ich von Anfang an getan habe, wie in C
.
def sprintf(buf, fmt, *args): ...
buf
und nicht am Ende.) Es ist wahrscheinlich am besten, ein Array von Zeichenfolgen zu verwenden und sie dann zusammenzufügen, bevor Sie in die Datei schreiben.