Python xlrd.Book: como fechar os arquivos?

Eu li 150 arquivos do Excel em um loop, abrindo-os comxlrd.open_workbook(), que retorna umBook objeto. No final, quando tenteiumount não consegui o volume e quando chequei comlsof, Descobri que 6 dos arquivos ainda estavam abertos:

$ 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

Aqui está a minha função: eu li os arquivos xls com:(despojado para maior clareza)

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()

oBook objeto não temclose() , não possui nenhum objeto de tipo de arquivo aberto entre suas propriedades, exceto o stdout. estecomo não fala sobre isso (não encontrou os documentos oficiais). Não vejo como eu poderia fechar o arquivo, e também é estranho que 6 permaneça aberto depois de ler 150 deles.

Editar: pode estar relacionado aesta, mas ainda não deve deixar arquivos abertos e não quero ler todas as planilhas.

questionAnswers(1)

yourAnswerToTheQuestion