当前位置: 首页 > 面试题库 >

如何在不加载整个文件的情况下从XLS文件获取工作表名称?

裴甫
2023-03-14
问题内容

我目前正在使用pandas读取Excel文件并向用户显示其工作表名称,因此他可以选择他要使用的工作表。问题在于文件非常大(70列x
65k行),最多需要14s才能在笔记本上加载(CSV文件中的相同数据需要3s)。

我在熊猫中的代码是这样的:

xls = pandas.ExcelFile(path)
sheets = xls.sheet_names

我之前尝试过xlrd,但获得了相似的结果。这是我用xlrd编写的代码:

xls = xlrd.open_workbook(path)
sheets = xls.sheet_names

那么,有人能建议一种比读取整个文件更快的方法来从Excel文件中检索工作表名称吗?


问题答案:

您可以使用xlrd库并使用“ on_demand =
True”标志打开工作簿,这样就不会自动加载工作表。

比起您可以以类似于熊猫的方式检索工作表名称:

import xlrd
xls = xlrd.open_workbook(r'<path_to_your_excel_file>', on_demand=True)
print xls.sheet_names() # <- remeber: xlrd sheet_names is a function, not a property


 类似资料:
  • 我目前正在使用pandas读取Excel文件,并向用户显示其表名,以便用户选择他想要使用的表。问题是文件真的很大(70列x65K行),在笔记本上加载需要14秒(CSV文件中的相同数据需要3秒)。

  • 问题内容: 是否有一种隐藏的方法可以在 不 读取整行的 情况下 从文件或类似文件的对象读取令牌?我立即拥有的应用程序(其他人的问题,不是我的问题)正在将具有几个非常长的行的大型矩阵转置,本质上是对选择单个列元素的迭代器执行操作。这个想法不是在迭代过程中将整个文件存储在内存中。 这些行是用空格分隔的ASCII十进制数字。 对于Java的Scanner类,问题可能很简单,但我没有在Python标准库中

  • 问题内容: 在Linux中,我有一个很大的文件,文件末尾附加了一些无关的信息。例如,假设我知道一个1.6GB文件的末尾有314个字节的无关数据。 当然,将更多数据添加到文件末尾是非常容易和有效的,但是我可以怎么做才能删除它,而不必将该文件的第一部分复制到另一个文件中(或覆盖所述文件)? 编辑 我在C中看到了一些很好的建议。我希望从命令行编写脚本,但是如果没有,我会比C更倾向于在python中进行编

  • 问题内容: 我在图标中列出了一些文件名及其图标(例如Windows资源管理器中的图标)。我知道从本地文件系统中获得对象的两种获取图标的方法: 16x16或更大的图标: 由于我的文件存储在数据库中,因此没有对象。我的解决方法是创建一个具有特定文件扩展名的临时文件,使用上述两种方法之一,并缓存图标以在CellRenderer中显示它。 我搜索了没有临时文件的解决方案,发现两个我都不喜欢的文件: ,但我

  • 我需要选择和下载存储在计算机上的许多文件夹,我只能通过远程ssh连接访问这些文件夹。我创建了一个列表(“list.txt”)来只下载我感兴趣的文件夹,我尝试使用一个“for”循环 但是不要阅读我的列表并卸载所有文件夹,我也尝试过 我能做什么?谢了!