只读取 Excel 个文件中的 headers 个

Read only the headers of Excel files

我有大量 Excel 文件需要从网上下载,然后仅从中提取 header(列名),然后继续。到目前为止,我只设法下载了整个文件,然后将其读入 Pandas DF,我可以从中提取列名。

有没有比下载或解析 header 而不是整个 Excel 文件更快的读取方式?

resp = requests.get(test_url)

with open('test.xls', 'wb') as output:
    output.write(resp.content)


headers = pd.ExcelFile("test.xls").parse(sheetname = 2)

headers.columns

如果没有有效的方法 "partially" 下载 Excel 文件以仅获取 header,是否有有效的方法仅读取 header下载后?

我会说不,因为 xls Excel 文件是二进制文件。所以 pandas ExcelFile 的解析器需要一个完整的文件。如果你给它一个部分文件,它应该报告一个不正确的文件(出于某种原因......)。

如果你真的想这样做,你将不得不彻底分析(以二进制形式)你想要处理的一些 Excel 文件,并尝试确定你需要找到的最小大小第一行的名字。然后你应该通过在足够低的级别实现 http 协议来下载它们,以便能够关闭连接,或者至少在你有足够的字节时停止读取。最后,您只需编写一个专用的解析器,希望这些文件不会发生任何变化——因为您不再使用高级维护工具,而只使用二进制读取。

TL/DR:除非你有非常充分的理由这样做,否则忘记它,因为它很难,容易出错并且很难维护。