回答編集履歴

1

ちょっと修正

2023/05/09 06:42

投稿

TakaiY
TakaiY

スコア14255

test CHANGED
@@ -1,8 +1,9 @@
1
+ > 自動的にflushされますか?
2
+ はい、されます。
1
- pythonでflush()してclose()しても、実際のディスクへの書き込みはOSの領域なので、その時点でディスクへの書き込みは保証されようです。なので、以下のドキュメントにあるとおり、ファイルへの書き込みを強制sitainodeareba,os.fsync()を呼ぶのがいいでしょう。
3
+ ただし、pythonでflush()してclose()しても、実際のディスクへの書き込みはOSの責任範囲なので、flush()してもディスクへの書き込みは保証されません。OSに強制したいのであれば、以下のドキュメントにあるとおり、os.fsync()を呼ぶのがいいでしょう。
2
4
 
3
5
  https://docs.python.org/ja/3/library/os.html#os.fsync
4
6
 
5
7
  > 一方で「うまく動作しなかった」
6
8
  flush()するとうまく行くことがあるのは、flush()で時間がかかるので、次にファイルを開くまでに、OSが書き込んでいる確率が上るからでしょう。
7
9
 
8
-