6
「効率的」、ファイルにだけ使用するようになり、ファイルへのBytesIOオブジェクトを記述する簡単な方法をBytesIOオブジェクトを書きますそれを1つのチャンクに書き込むのではなく、どうすればよいでしょうか?私はPython 2.7.1を使っています。また、BytesIOが巨大であれば、より効率的な方法で繰り返し書くことができますか?だから
おかげ
「効率的」、ファイルにだけ使用するようになり、ファイルへのBytesIOオブジェクトを記述する簡単な方法をBytesIOオブジェクトを書きますそれを1つのチャンクに書き込むのではなく、どうすればよいでしょうか?私はPython 2.7.1を使っています。また、BytesIOが巨大であれば、より効率的な方法で繰り返し書くことができますか?だから
おかげ
shutil
は効率的にファイルを書き込みます有用性を有します。チャンクでコピーし、デフォルトは16Kです。 4Kチャンクの倍数は、良いクロスプラットフォーム数でなければなりません。実際にファイルがディスクに入る前にRAMのOSキャッシュに書き込まれ、チャンクサイズがそれほど大きくないので、私は131072をむしろ任意に選択しました。
import shutil
myBytesIOObj.seek(0)
with open('myfile.ext', 'wb') as f:
shutil.copyfileobj(myBytesIOObj, f, length=131072)
btwのように、最後にファイルオブジェクトを閉じる必要はありませんでした。この文は、with文が一致すると自動的に閉じられます。
恐ろしいです。本当にありがとう。これは完全に機能します。そして、はい、私はファイルポインタを閉じるのは苦労しません。しかし、私のバイト/文字列IOポインタは、私は実際には閉じて、それを破棄してガベージコレクタに移動させたい。 – Kalabaaz