在openpyxl中关闭文件

正如阅读文档所预期的那样,这两个过程均未完成:

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截至撰写本文时,我怀疑它已经发生了很大变化。

以上是 在openpyxl中关闭文件 的全部内容, 来源链接: utcz.com/qa/430403.html

回到顶部