私は、約 50 の個別の一時ファイルを作成する必要がある Python スクリプトに取り組んでいます。これらはすべて、スクリプトの過程で頻繁に追加され、最後にマージされます。モジュールが必要なことを実行できると確信していtempfile
ますが、ドキュメントを読んでも方法を理解できませんでした。
変数ではなく、一時ファイルを使用してシステム メモリを節約したいと考えています。これらのデータ チャンクは、スクリプトが他の何万ものファイルを処理するにつれて大きくなるからです。
次のコードのチャンクは、一時的でないディレクトリにこれらのファイルを (一時的に) 作成するために現在使用しているハックです。
item = (string from another file) # string must id file for future use
tmpfile = 'tmpfiles/' + item
if item not in totalitems:
totalitems.add(item)
with open(tmpfile, 'w') as itemfile:
output = some stuff
tmpfile.write(output)
else:
with open(tmpfile, 'a') as itemfile:
output = different stuff
tmpfile.write(output)
必要なのは だと思いますtempfile.NamedTemporaryFile()
。ドキュメントによると:
その名前は、ファイル オブジェクトの名前メンバーから取得できます。
残念ながら意味がわかりません。処理中のファイルで対応する「アイテム」に再び遭遇したときに、後で各ファイルを再度呼び出すことができるようにする必要があります。これはかなり簡単だと思います。私はただ密集しているだけです。念のため、このスクリプトには Python 2.7.1 と 3.2.3 の両方のバージョンがあります。どちらかが機能するだけで本当に必要です。私は学習演習として両方を作成しました。