1

後で FTPd する特定のファイル名を必要とする大きなテキスト ファイルを生成する Python スクリプトがあります。ファイルを作成した後、送信された日付を反映するように日付を変更しながら、ファイルを新しい場所にコピーします。唯一の問題は、コピーされたファイルにオリジナルの最後の行がいくつか欠けていることです。

from shutil import copy

// file 1 creation

copy("file1.txt", "backup_folder/file1_date.txt")

何が原因でしょうか? 元のファイルへの書き込みが完了していないため、コピーがそこにあるものだけを取得する可能性はありますか?

4

1 に答える 1

5

作成したものがファイルハンドルfile1.txt閉じていることを確認する必要があります。

ファイルの書き込みはバッファリングされ、ファイルを閉じない場合、バッファはフラッシュされません。ファイルの最後にある欠落データは、まだそのバッファーに残っています。

できれば、ファイルオブジェクトをコンテキストマネージャーとして使用して、ファイルが閉じていることを確認してください。

with open('file1.txt', 'w') as openfile:
    # write to openfile

# openfile is automatically closed once you step outside the `with` block.
于 2013-03-08T21:26:37.700 に答える