Python のC スタイルの機能を使用して、文字列バッファを作成して、多くの処理、フォーマットを行い、最終的にバッファをテキスト ファイルに書き込みたいと思いますsprintf
。条件文があるため、ファイルに直接書き込むことはできません。
例: 疑似コード:
sprintf(buf,"A = %d\n , B= %s\n",A,B)
/* some processing */
sprint(buf,"C=%d\n",c)
....
...
fprintf(file,buf)
したがって、出力ファイルには次のような o/p が含まれます。
A= foo B= bar
C= ded
etc...
編集、質問を明確にします:
buf
は、sprintf を使用してフォーマットされたすべての文字列を含む大きなバッファです。あなたの例に従うと、 にはbuf
現在の値のみ含まれ、古い値は含まれません。たとえば、buf
私が書いたA= something ,B= something
laterの firstC= something
は同じ に追加されましたbuf
が、あなたの Python の回答にはbuf
last の値のみ含まれますが、これは私が望んでいるものではありません。のように、最初から行ったすべての をbuf
取得したいのです。printf
C
ベストアンサー1
Python%
にはこれ用の演算子があります。
>>> a = 5
>>> b = "hello"
>>> buf = "A = %d\n , B = %s\n" % (a, b)
>>> print buf
A = 5
, B = hello
>>> c = 10
>>> buf = "C = %d\n" % c
>>> print buf
C = 10
これを見て参照サポートされているすべての書式指定子。
次のようにも使えますformat
:
>>> print "This is the {}th tome of {}".format(5, "knowledge")
This is the 5th tome of knowledge