Python はどのくらいの頻度でファイルにフラッシュしますか? 質問する

Python はどのくらいの頻度でファイルにフラッシュしますか? 質問する
  1. Python はどのくらいの頻度でファイルにフラッシュしますか?
  2. Python はどのくらいの頻度で stdout にフラッシュしますか?

(1)についてはよく分かりません。

(2) に関しては、Python は新しい行ごとに stdout にフラッシュすると思います。しかし、stdout をファイルにオーバーロードした場合、同じ頻度でフラッシュされるのでしょうか?

ベストアンサー1

ファイル操作の場合、Python は、特に設定しない限り、オペレーティング システムのデフォルトのバッファリングを使用します。バッファ サイズ、バッファなし、または行バッファを指定できます。

たとえば、open 関数はバッファ サイズ引数を取ります。

http://docs.python.org/library/functions.html#open

「オプションのバッファリング引数は、ファイルの希望するバッファ サイズを指定します:」

  • 0はバッファなしを意味します。
  • 1はラインバッファリングを意味します。
  • その他の正の値は、(おおよそ)そのサイズのバッファを使用することを意味します。
  • ネガティブバッファリングは、システムのデフォルトを使用することを意味します。これは通常、tty デバイスの場合は行バッファリングされ、他のファイルの場合は完全にバッファリングされます。
  • 省略した場合は、システムのデフォルトが使用されます。

コード:

bufsize = 0
f = open('file.txt', 'w', buffering=bufsize)

おすすめ記事