Python高效读写TXT与Excel文件:从基础语法到实战代码
介绍如何利用Python标准库与主流第三方插件完成文本与电子表格的批量处理。涵盖基础文件流管理、多Sheet数据提取、单元格格定制与图片嵌入等核心场景,提供可直接运行的代码模板,适用于日常数据清洗与自动化报表生成任务。
环境配置与核心依赖
在处理数据分析任务时,经常需要将结构化表格(如Excel)与非结构化文本进行批量转换或提取。完成本流程需准备以下环境:
- 运行环境:Python 3.x
- 核心依赖:安装第三方库
openpyxl(支持.xlsx读写)与xlsxwriter(侧重格式美化与高性能写入)。

第一步:使用内置函数读写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 库。它不仅能读取单元格内容,还支持工作表管理、样式调整与公式计算。
- 安装库:执行
pip install openpyxl完成依赖部署。 - 读取现有表格:通过
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格式。
- 安装库:执行
pip install xlsxwriter。 - 多类型数据写入:使用对应方法写入字符串、数字、公式、布尔值或超链接,支持统一单元格格式化。
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自动化办公与数据处理的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













