Python高效读写TXT与Excel文件:从基础语法到实战代码

橘子海
橘子海
发布时间:2026-10-11 | 3人浏览过
原创

介绍如何利用Python标准库与主流第三方插件完成文本与电子表格的批量处理。涵盖基础文件流管理、多Sheet数据提取、单元格格定制与图片嵌入等核心场景,提供可直接运行的代码模板,适用于日常数据清洗与自动化报表生成任务。

环境配置与核心依赖

在处理数据分析任务时,经常需要将结构化表格(如Excel)与非结构化文本进行批量转换或提取。完成本流程需准备以下环境:

  • 运行环境:Python 3.x
  • 核心依赖:安装第三方库 openpyxl(支持.xlsx读写)与 xlsxwriter(侧重格式美化与高性能写入)。
Python读写TXT与Excel文件操作流程示意
Python处理文本与表格数据的核心步骤概览

第一步:使用内置函数读写Text文件

Python标准库提供了基础的文本处理能力。open() 函数是操作文本文件的核心入口,其基本语法为 open(name, mode, buffering)。其中 mode 参数决定访问权限:'r' 为只读(默认),'w' 为写入(会清空原文件并新建),'a' 为追加。处理中文内容时必须显式指定 encoding='utf-8' 以防乱码。

import os
import sys

# 获取脚本所在目录路径
base_dir = sys.path[0]
file_path = os.path.join(base_dir, "out.txt")

# 以写入模式打开文件(不存在则创建,存在则覆盖)
q = open(file_path, "w", encoding='utf-8')
q.write('这个是测试一下\n')
q.close()  # 务必执行关闭操作释放系统资源
print('TXT写入完成')

若需批量生成数据,可结合循环结构。注意关闭流时使用 .close() 方法而非属性赋值。生产环境中建议改用 with open(...) as f: 上下文管理器自动释放资源。

第二步:利用openpyxl解析与生成Excel

针对现代Excel文件格式(.xlsx),推荐使用 openpyxl 库。它不仅能读取单元格内容,还支持工作表管理、样式调整与公式计算。

  1. 安装库:执行 pip install openpyxl 完成依赖部署。
  2. 读取现有表格:通过 load_workbook() 载入文件对象,按索引或名称获取Sheet后遍历行列提取值。
import openpyxl
import os

dir_path = './练习题'
target_txt = open('extracted_data.txt', 'w', encoding='utf-8')

for filename in os.listdir(dir_path):
    if filename.endswith('.xlsx'):
        wb = openpyxl.load_workbook(os.path.join(dir_path, filename))
        sheet_names = wb.sheetnames
        
        for s_name in sheet_names:
            ws = wb[s_name]
            print(f"处理文件: {filename} | 工作表: {s_name}")
            
            # 遍历所有行列提取数据
            for row in range(1, ws.max_row + 1):
                values = []
                for col in range(1, ws.max_column + 1):
                    values.append(str(ws.cell(row=row, column=col).value))
                target_txt.write(','.join(values) + '\n')

target_txt.close()
print('所有表格数据已提取至TXT')

该段代码演示了如何遍历指定文件夹下的多个Excel文件,并将每个工作表的单元格内容按逗号分隔输出到文本中,适合做数据清洗前的预处理。

第三步:通过xlsxwriter定制写入与格式化

当需要生成带有复杂样式、图表或大量数据的新表格时,xlsxwriter 表现更为出色。它专为写入优化,完全兼容原生XLSX格式。

  1. 安装库:执行 pip install xlsxwriter。
  2. 多类型数据写入:使用对应方法写入字符串、数字、公式、布尔值或超链接,支持统一单元格格式化。
import xlsxwriter

wk = xlsxwriter.Workbook('demo.xlsx')
sheet = wk.add_worksheet('数据分析表')

# 基础数据类型写入
sheet.write_string(1, 1, "python test")
sheet.write_number(1, 2, 1200)
sheet.write_formula(1, 4, "=B1*10")
sheet.write_boolean(1, 5, True)
sheet.write_url(1, 6, "https://example.com")

# 单元格格式定制
cell_format = wk.add_format({
    'font_size': 20,
    'bold': True,
    'align': 'left',
    'valign': 'vcenter',
    'font_name': 'Microsoft YaHei',
    'text_wrap': True
})
sheet.write(2, 2, "关键指标汇总", cell_format)

wk.close()
print('带格式Excel已生成')

插入图片与缩放控制

表格报告中常需嵌入截图或示意图。可通过 insert_image() 配合布局字典实现精准定位。

# 设置图片插入参数
img_options = {
    'x_scale': 0.5,      # 水平缩放比例
    'y_scale': 0.5,      # 垂直缩放比例
    'x_offset': 10,      # 相对单元格偏移像素
    'y_offset': 15
}
sheet.insert_image(1, 1, 'chart_preview.png', img_options)

常见注意事项与排错

  • 文件句柄泄漏:始终确保 .close() 被执行。未正确关闭文件可能导致数据未落盘或被其他进程锁定。
  • 路径拼接规范:Windows下混合使用正斜杠或反斜杠可能导致编码异常,建议使用 os.path.join() 保证跨平台兼容。
  • 旧版接口警告:早期教程可能推荐 from openpyxl.reader.excel import load_workbook,此写法已在较新版本中废弃,直接导入顶层命名空间即可。
  • 大数据量内存占用:若处理GB级日志或超大型表格,建议分批读取或使用 pandas 配合迭代器加载,避免直接全量加载引发内存溢出。

总结

掌握上述文本与表格的基础IO操作后,即可组合编写自动化数据搬运脚本。实际项目中可进一步集成日期校验、异常捕获与进度提示模块。以上就是Python高效读写TXT与Excel文件操作方法的详细内容,更多关于Python自动化办公与数据处理的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表