Python批量读取多类型文件夹文档内容
本文介绍使用Python遍历指定目录并自动识别扩展名,分别调用python-docx与pandas库提取TXT、DOCX及Excel文件内容的完整流程。通过封装读取函数与条件分支,可快速实现多格式办公文档的内容抓取与结构化输出,适用于资料汇总与数据预处理场景。
实现目标与前置准备
当需要汇总散落在不同层级目录中的办公文档时,手动复制粘贴效率较低。本方案旨在利用Python的脚本能力,递归扫描目标文件夹,根据后缀名自动分流至对应的解析器,最终在控制台输出纯净文本或结构化数据。执行前请确保已安装Python 3.6+环境,并通过终端命令安装第三方库:
pip install python-docx pandas openpyxl
第1步:配置运行环境与依赖库
【目的】搭建完整的解析运行环境,确保文本与表格模块均可正常调用。
【入口】系统命令行或IDE终端。
【动作】执行包管理工具下载python-docx(解析Word)、pandas(表格计算)与openpyxl(Excel读写引擎)。
【重要参数】无特定参数,需保持网络通畅以便拉取最新版本。
【完成状态】运行pip list确认三个依赖包版本号正常输出。
第2步:封装基础文本读取函数
【目的】定义独立方法隔离不同格式的解析逻辑,降低主程序耦合度。
【入口】Python脚本新建.py文件。
【动作】利用内置open函数全文读取TXT;使用python-docx解析XML结构提取段落文本。需显式声明encoding='utf-8'防止中文乱码。
【重要参数】file_path为绝对或相对路径字符串。
【完成状态】函数返回不包含多余换行符的连续文本字符串。
第3步:构建文件夹遍历调度器
【目的】自动发现嵌套目录下的所有目标文件并分发处理。
【入口】在IDE或终端启动主脚本。
【动作】调用os.walk(folder_path)获取根目录、子目录列表与文件名。通过endswith()判断后缀,匹配.txt或.docx则调用对应读取函数并打印结果。支持按实际需求追加更多elif分支。
【重要参数】folder_to_read替换为待扫描的实际目录路径。
【完成状态】终端按顺序输出每个文件的名称及其内部全部内容。
import os
from docx import Document
def read_txt_file(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
return file.read()
def read_docx_file(file_path):
doc = Document(file_path)
return '\n'.join([para.text for para in doc.paragraphs])
def scan_and_parse(folder_path):
for root, _, files in os.walk(folder_path):
for name in files:
fpath = os.path.join(root, name)
if name.endswith('.txt'):
print(f"📄 {fpath}\n{read_txt_file(fpath)}\n")
elif name.endswith('.docx'):
print(f"📘 {fpath}\n{read_docx_file(fpath)}\n")
# 替换为实际目录路径
scan_and_parse('你的目标文件夹路径')
第4步:接入表格数据解析组件
【目的】利用Pandas快速加载CSV与Excel的结构化行列数据,便于后续分析。
【入口】同一脚本内导入pandas模块。
【动作】使用pd.read_csv()或pd.read_excel()直接映射为DataFrame对象。针对CSV/TXT混合排版情况,需通过sep指定分隔符,并用header控制表头行索引(默认header=0取第一行为列名;若无表头需设header=None并配合names重命名)。
【重要参数】sheet_name、header、sep、names。
【完成状态】控制台显示包含行列索引的数据网格视图。
# 读取标准表格文件
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1')
# 读取带制表符分隔的文本型数据
df_text = pd.read_csv(r'stdout.txt', sep='\t', header=0)
运行验证与常见问题排查
- 编码冲突:遇到
UnicodeDecodeError时,检查文件是否由GBK/GB2312环境生成,将读取参数改为encoding='gbk'即可恢复。 - 模块缺失:解析Excel时报错
OSError: Missing optional dependency 'openpyxl',需在命令行补装pip install openpyxl。 - 空值过滤:DOCX文档中含图片或非段落元素会导致
paragraphs遗漏,可在循环内添加if para.text.strip()过滤空白节点。
简要总结
以上就是Python批量读取多类型文件夹文档内容的详细内容,更多关于Python办公文档自动化处理与数据分析的资料请关注本站其它相关文章!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













