You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python仅读取大Excel文件(CSV/XLS/XLSB)的列名?

快速读取大Excel/CSV文件列名的最优方法

针对不同格式的大文件,直接用对应格式的原生库读取表头,完全无需加载整个文件,速度会比Pandas的方法快很多:

CSV格式

CSV是纯文本文件,表头就在第一行,用Python内置的csv模块直接读取第一行即可:

import csv

file_path = "/Users/aj/testing/File_1.csv"
with open(file_path, 'r', newline='', encoding='utf-8') as f:
    reader = csv.reader(f)
    cols = next(reader)  # 直接取第一行作为列名

XLS/XLSX格式

针对XLSX(新版Excel)

用openpyxl的只读模式,只加载表头行:

from openpyxl import load_workbook

file_path = "/Users/aj/testing/File_1.xlsx"
wb = load_workbook(filename=file_path, read_only=True)
ws = wb.active  # 取默认工作表,也可以用wb['Sheet1']指定工作表名
cols = [cell.value for cell in ws[1]]  # 第一行是表头
wb.close()

read_only=True模式下,openpyxl不会把整个工作簿加载到内存,只按需读取内容,取完第一行就可以停止。

针对XLS(旧版Excel)

用xlrd的按需加载模式:

import xlrd

file_path = "/Users/aj/testing/File_1.xls"
wb = xlrd.open_workbook(file_path, on_demand=True)
ws = wb.sheet_by_index(0)  # 按索引取工作表,也可用sheet_by_name('Sheet1')
cols = ws.row_values(0)  # 第一行索引为0
wb.close()

on_demand=True让xlrd只加载工作表的结构信息,不会读取全表数据。

XLSB格式

放弃Pandas的封装,直接用pyxlsb原生方法读取第一行:

from pyxlsb import open_workbook

file_path = "/Users/aj/testing/File_1.xlsb"
with open_workbook(file_path) as wb:
    # 工作表索引从1开始,也可以用get_sheet('SheetName')指定名称
    with wb.get_sheet(1) as ws:
        cols = []
        for row in ws.rows():
            cols = [cell.value for cell in row]
            break  # 只取第一行就退出循环,不读取后续内容

这种方式不会扫描整个工作表,精准只取表头行,解决了Pandas方法加载全表的问题。

内容的提问来源于stack exchange,提问作者arpit joshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:52:55