我在一个循环中读取了150个excel文件,用xlrd.open_workbook()打开它们,它返回一个Book对象。最后,当我试图umount音量,我无法,当我与lsof检查,我发现文件6仍然开放:Python xlrd.Book:如何关闭文件?

$ 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()方法,也没有其属性中的任何打开的文件类型的对象,除了标准输出。这howto并没有告诉(这还没有找到官方文档)。我看不出我怎么能够关闭这个文件,而且看到其中的150个文件后6个文件仍然打开是很奇怪的。

编辑:它可能与this有关,但仍然不应该保留打开的文件,我不想读取所有工作表。

2015-10-20

deeenes

+1

的[有没有办法使用xlrd关闭工作簿]可能的复制(http://stackoverflow.com/questions/5403781/is-there-a-way-to-close -a-workbook-using-xlrd) –

+0

谢谢Reto,这是一个遗憾,我没有在建议中看到过这个。更确切地说,在一个注释'release_resources()'中提到,这应该对我有帮助。 –

+1

我检查,它的工作原理。在打开时使用'on_demand = True'时,需要在关闭时调用'book.release_resources()'。这只能在这个评论中找到:http://stackoverflow.com/questions/5403781/is-there-a-way-to-close-a-workbook-using-xlrd#comment10131975_5403934 –

python关闭文件的方法_Python xlrd.Book:如何关闭文件?相关推荐

  1. python如何创建excel文件_Python xlrd/xlwt 创建excel文件及常用操作

    一.创建excel代码 备注:封装好了(可直接调用) """ -*- coding:utf-8 -*- @Time :2020/8/20 21:02 @Author :J ...

  2. python中写入csv文件的方法_Python写入CSV文件的方法

    python笔记5-python2写csv文件中文乱码问题 前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面 ...

  3. python文件分块读取_Python多进程分块读取超大文件的方法

    本文实例讲述了Python多进程分块读取超大文件的方法.分享给大家供大家参考,具体如下: 读取超大的文本文件,使用多进程分块读取,将每一块单独输出成文件 # -*- coding: GBK -*- i ...

  4. python读取压缩文件的大小_python查看zip包中文件及大小的方法

    python查看zip包中文件及大小的方法 本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import ...

  5. python pdf脚本之家_Python实现简单拆分PDF文件的方法

    本文实例讲述了Python实现简单拆分PDF文件的方法.分享给大家供大家参考.具体如下: 依赖pyPdf处理PDF文件 切分pdf文件 使用方法: 1)将要切分的文件放在input_dir目录下 2) ...

  6. python打乱列表的方法_python打乱列表

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 随机打乱列表中的元素自己写函数用于随机打乱列表中的元素方案一:交换法随机选取原列 ...

  7. python重命名文件或目录_Python重命名多个文件的实例方法

    Python中如何重命名多个文件 在Python3中可以使用rename()方法+listdir()方法来重命名多个文件,这两个方法都是os模块的一部分,非常方便.下面本篇文章就来带大家了解一下ren ...

  8. python操纵excel的方法_python操作Excel的几种方式

    Python对Excel的读写主要有xlrd.xlwt.xlutils.openpyxl.xlsxwriter几种. 首先你的本地要有包文件,安装上面的包文件如下图 1.xlrd主要是用来读取exce ...

  9. python库的安装方法_Python库的安装方法

    Python库的安装方法 Python的解释器CPython是开源的,我们可以下载查看其源代码,同时,Python语言的各种库也都是开源的.利用Python语言编程,可用的库有很多,在Python官方 ...

最新文章

  1. python 对 yaml 文件操作
  2. t - sql的阶梯:超越基础水平2:写子查询
  3. 上手机器学习,从搞懂这十大经典算法开始
  4. bootstrap19-内联表单
  5. 今天网络又出问题了,现在的问题变成原IP地址不可用
  6. utf-16 java_Java、Unicode、UTF-8、UTF-16之间的关系
  7. 转:模态对话框的支持 (IE,Firefox,Chrome)
  8. 4种不同类别的机器学习概述
  9. 菜鸟学Struts2——Interceptors
  10. 面试官:为什么要合并 HTTP 请求?
  11. Ubuntu输入法使用回车键后字符间距异常的问题
  12. wordpress提示“Error establishing a database connection“的解决办法
  13. min_max算法和alpha-beta剪枝 python实现
  14. CycleGan脱衣服(男人)
  15. Substrate 基础教程(Tutorials) -- 模拟网络 添加可信节点
  16. Js判断是否为数字,是否为空,是否为整形,是否为浮点型,是否为对象
  17. 微信防红不死码跳转微信防封源码
  18. MariaDB/Mysql数据库进阶知识
  19. 内网xshell传输文件命令_Xshell 传输文件
  20. 2019,淘宝无货源转型之路势在必行,单类目玩法实操案例解析

热门文章

  1. 实在智能RPA助你提升电商运营效率,快速起爆店铺
  2. 卷积神经网络简要笔记
  3. Android最新最全面试题及答案分享
  4. 为什么要用微前端?如何使用乾坤微前端?
  5. 软件测试的学习笔记(4)
  6. asmi lpar_管理LPAR启动顺序并使用系统概要文件验证资源分配
  7. 请教大家IMEI号手机与包装上面不一致是什么状况
  8. EMQ的安装以及MQTT的简单使用
  9. 华为研发工程师编程题(1)----汽水瓶
  10. 前端开发微信公众号本地调试