ドキュメントを読むと予想されるように、これらのプロセスはどちらもありません。
worksheet.close()
workbook.close()
openpyxlで一度実行したファイルを閉じる方法はありますか?それとも、プログラムが終了したときに自動的に処理されますか?スプレッドシートをメモリにぶら下げたままにしたくありません。
さて、あなたはソースコードを見ることができます、Imは現在1.5.5をそのように使用しています
def load_workbook(filename, use_iterators=False):
if isinstance(filename, file):
# fileobject must have been opened with 'rb' flag
# it is required by zipfile
if 'b' not in filename.mode:
raise OpenModeError("File-object must be opened in binary mode")
try:
archive = ZipFile(filename, 'r', ZIP_DEFLATED)
except (BadZipfile, RuntimeError, IOError, ValueError), e:
raise InvalidFileException(unicode(e))
wb = Workbook()
if use_iterators:
wb._set_optimized_read()
try:
_load_workbook(wb, archive, filename, use_iterators)
except KeyError, e:
raise InvalidFileException(unicode(e))
finally:
archive.close()
return wb
はいのように見えますが、ワークブックをロードするときにアーカイブを閉じますが、保存するときはどうでしょうか。
def save(self, filename):
"""Write data into the archive."""
archive = ZipFile(filename, 'w', ZIP_DEFLATED)
self.write_data(archive)
archive.close()
保存するとアーカイブも閉じられるようです。
基本的には、後で閉じたファイルからExcelブックをメモリに読み込み、更新します。保存しないと変更が失われる可能性があります。保存すると、書き込み後にファイルが閉じます。
openpyxlで一度実行したファイルを閉じる方法はありますか?それとも、プログラムが終了したときに自動的に処理されますか?スプレッドシートをメモリにぶら下げたままにしたくありません。
wb.save(filename = dest_filename)
ファイルの読み込みまたは書き込みの場合と同様に、変更を保存できます。handled automatically
操作後に閉じられますが、openpyxlを使用すると変更が自動的に保存され、オブジェクトが削除またはガベージコレクションされたときに何も呼び出されませんclass Workbook(object):
。__del__
これは1.5.5
現在のバージョンが1.5.8
この記事を書いている時点のものであり、私は多くの変更があったとは思えません。
あなたはこれを試すことができます
wb.Close(True)