使用python-doc库,将100份doc文件中文字,表头,表格全都提取出来,把结果存储到CSV文件
时间: 2024-12-08 12:14:47 浏览: 15
moxing_python数据清洗_读取csv文件_数据清洗_
5星 · 资源好评率100%
Python 的 python-docx
库主要用于处理 Microsoft Word 文档 (.doc) 文件,而 CSV 文件用于存储结构化的数据,通常是文本格式。如果你想从 doc 文件中提取文字、表头和表格信息并保存到 CSV 文件,你需要按以下步骤操作:
安装所需库: 首先需要安装
python-docx
和pandas
库,分别用于处理 Word 文档和创建 CSV 文件。可以使用pip
进行安装:pip install python-docx pandas
读取和解析文档: 使用
python-docx
打开每个.doc
文件,并逐个遍历文档内容。对于每个段落、表格等元素,检查是否包含文本或表头信息。
import os
from docx import Document
import pandas as pd
def extract_data_from_doc(file_path):
document = Document(file_path)
# 初始化列表来收集数据
text_list = []
headers = []
for paragraph in document.paragraphs:
# 提取文本
if paragraph.text and (paragraph.style.name != 'Table Grid'): # 忽略表格网格线
text_list.append(paragraph.text)
# 对于表格,需单独处理
for table in document.tables:
for row in table.rows:
header_cell_text = ''
data_cell_texts = []
# 检查第一列是否为表头
for cell in row.cells:
if cell.cell_format == 'Header':
header_cell_text = cell.text
else:
data_cell_texts.append(cell.text)
# 如果有表头,添加到headers列表
if header_cell_text:
headers.append(header_cell_text)
# 将数据行添加到text_list
text_list.append(data_cell_texts)
return text_list, headers
# 遍历所有 .doc 文件路径
doc_files = ['file1.doc', 'file2.doc', ..., 'file100.doc']
output_data = []
for file in doc_files:
text, headers = extract_data_from_doc(file)
output_data.append([file, *headers, *text])
# 创建 DataFrame 并保存到 CSV
data_df = pd.DataFrame(output_data, columns=['File', 'Headers'] + ['Text'])
data_df.to_csv('extracted_data.csv', index=False)