文件的第三方库,支持创建、修改工作簿、工作表、单元格数据、样式、公式)
os用于与操作系统交互如文件/目录路径操作、环境变量读取、文件存在性判断等shutil提供高级文件操作功能如复制、移动、删除文件或目录如shutil.copy(),shutil.rmtree()openpyxl用于读写 Excel.xlsx文件的第三方库支持创建、修改工作簿、工作表、单元格数据、样式、公式等。⚠️ 注意使用openpyxl前需确保已安装可通过pip install openpyxl安装且它不支持.xls旧版 Excel格式仅支持.xlsx、.xlsm、.xltx、.xltm。常见用途示例用openpyxl.load_workbook()打开现有 Excel 文件用workbook.active或workbook[SheetName]获取工作表用sheet[A1].value Hello写入单元格用workbook.save(output.xlsx)保存更改。使用openpyxl读取 Excel 中某一列例如列 “A”的所有非空值可按以下步骤操作✅ 正确做法推荐高效且安全fromopenpyxlimportload_workbook# 加载工作簿只读模式更省内存适合大文件wbload_workbook(data.xlsx,read_onlyTrue)# 注意read_onlyTrue 时不能修改但更快更省内存wswb.active# 或 wb[Sheet1]# 方法1遍历该列所有有数据的单元格推荐自动跳过空白行column_data[]forcellinws[A]:# A 列所有单元格从 A1 开始向下ifcell.valueisnotNoneandstr(cell.value).strip()!:# 排除 None 和纯空白字符串column_data.append(cell.value)wb.close()# read_onlyTrue 时必须显式关闭print(column_data)✅ 补充说明ws[A]返回一个生成器generator逐行访问 A 列所有单元格包括空单元格但不会加载整张表到内存尤其在read_onlyTrue下若需处理含公式、日期、数字、布尔等类型cell.value已自动解析为 Python 原生类型如datetime.date,int,bool若需严格排除空白字符串、空格、换行符用str(cell.value).strip()是稳妥做法❌ 避免用ws.max_row 循环索引如ws[fA{i}].value因max_row可能不准尤其删除行后未刷新。 进阶读取指定列如第3列 → ‘C’ 列或按列号ws.iter_cols(min_col3, max_col3, values_onlyTrue)# 更灵活按列号获取整列值values_onlyTrue 直接返回值元组col_valueslist(ws.iter_cols(min_col1,max_col1,values_onlyTrue))[0]# 第1列A列non_empty[vforvincol_valuesifvisnotNoneandstr(v).strip()]