Python xlrd.Book: как закрыть файлы?

Я читаю 150 файлов Excel в цикле, открывая их сxlrd.open_workbook(), который возвращаетBook объект. В конце, когда я пыталсяumount громкость, я не смог, и когда я проверил сlsofЯ обнаружил, что 6 файлов все еще открыты:

$ lsof | grep volumename

python2   32349         deeenes  mem       REG               0,40    138240     181517 /.../150119.xls
python2   32349         deeenes  mem       REG               0,40    135168     181482 /.../150609.xls
python2   32349         deeenes  mem       REG               0,40    140800     181495 /.../140828.xls
python2   32349         deeenes    5r      REG               0,40    140800     181495 /.../140828.xls
python2   32349         deeenes    6r      REG               0,40    135168     181482 /.../150609.xls
python2   32349         deeenes    7r      REG               0,40    138240     181517 /.../150119.xls

Вот моя функция, с которой я читаю файлы xls:(раздели для ясности)

import sys
import xlrd
from xlrd.biffh import XLRDError

def read_xls(xls_file, sheet = '', return_table = True):
    try:
        book = xlrd.open_workbook(xls_file, on_demand = True)
        try:
            sheet = book.sheet_by_name(sheet)
        except XLRDError:
            sheet = book.sheet_by_index(0)
        table = [[str(c.value) for c in sheet.row(i)] for i in xrange(sheet.nrows)]
        if not return_table:
            table = None
        return table
    except IOError:
        sys.stdout.write('No such file: %s\n' % xls_file)
    sys.stdout.flush()

Book объект не имеетclose() метод, ни один не имеет открытых объектов типа файла среди своих свойств, кроме стандартного вывода. этокак не говорит об этом (не нашел официальных документов). Я не вижу, как я мог закрыть файл, и также странно, что 6 остается открытым после прочтения 150 из них.

Редактировать: это может быть связано сэтот, но все равно не следует оставлять открытые файлы, и я не хочу читать все листы.

Ответы на вопрос(1)

Ваш ответ на вопрос