- Python はどのくらいの頻度でファイルにフラッシュしますか?
- 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)