Pythonのsprintfのような機能 質問する

Pythonのsprintfのような機能 質問する

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= somethinglaterの firstC= somethingは同じ に追加されましたbufが、あなたの Python の回答にはbuflast の値のみ含まれますが、これは私が望んでいるものではありません。のように、最初から行ったすべての をbuf取得したいのです。printfC

ベストアンサー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

おすすめ記事