2011-07-11 3 views
1

私はそのファイルを読むのが遅く、ファイルに書き込んだ自分のコードを見ていました。コンマ。文字列を一度にどこかに保存する

 
outFile.write(",") 

だから、私は(のような、私は書き出す前に、文字か何かの1キロバイトを知らない)どこかに私のすべての文字を格納した場合、多分それは良くなるはずと考えました。

どうすれば実装できますか?私はリストを取ってそれに文字列を追加してから、結合して結果の文字列を書き出しますか?それとももっと良いアプローチがあるかもしれません。

+2

あなたはこれをどこから読んだのですか?コンテキストは何ですか?すべての出力ステートメントをオフにすると、プログラムの実行が著しく速くなりますか?私はあなたが伐採やそれについて何かを話していると仮定していますか? – FrustratedWithFormsDesigner

+8

"私のキャラクターをどこかに保存しておけばよかったです"。プログラミング言語(Python)、基礎となるI/Oライブラリ、およびオペレーティングシステムはすべて、実際にファイルI/Oを実行する前に文字をバッファに入れていることは明らかです。この "私のキャラクターをどこかに保存した"という考え方は "バッファリング"と呼ばれ、すでにあなたのために行われています。 –

答えて

5

バッファされたI/Oについては、ioモジュールのdocumentationを参照してください。 S.Lott氏が指摘しているように、既にPythonの組み込みI/Oオブジェクトの多くにはバッファが組み込まれているので、おそらくあなたはすでにそれをあなたが知らなくても使っているでしょう。

+1

そして、まれに、組み込みバッファ*が十分ではない場合、 'io.StringIO()'と 'io.BytesIO()'クラスがインメモリバッファを実装するために探しているクラスです。 –

+1

'StringIO'は' io'モジュールではなく、Python 2の 'StringIO'モジュール(CPythonの' cStringIO'モジュールです。これは高速です)にあります。 –

関連する問題