使用python-doc库,将100份doc文件中文字,表格全都提取出来,把文字,表格存储到CSV文件
时间: 2024-12-09 14:17:07 浏览: 12
实验七:文件操作.doc
Python的`python-docx`库主要用于读取和操作Word文档,如果你需要从多个DOC文件中提取文本和表格并保存到CSV,可以按照以下步骤进行:
1. 首先安装必要的库:
```
pip install python-docx pandas openpyxl
```
这里我们还需要`pandas`用于处理数据和创建CSV,以及`openpyxl`(如果包含Excel表格)。
2. 定义函数,遍历文件夹中的所有DOC文件:
```python
import os
from docx import Document
import pandas as pd
def extract_data_from_doc(input_folder, output_file):
data = []
for filename in os.listdir(input_folder):
if filename.endswith('.doc'):
doc = Document(os.path.join(input_folder, filename))
# 提取文本内容
text_content = '\n'.join([para.text for para in doc.paragraphs])
# 检查是否有表格,如果有,转换成列表
tables = doc.tables
table_data = [table.rows for table in tables] if tables else None
# 如果有表格,将其添加到data列表中
if table_data is not None:
table_data = [row.cells for row in table_data]
data.append({
'filename': filename,
'text': text_content,
'tables': table_data,
})
# 将提取的数据整理为DataFrame,并保存为CSV
df = pd.DataFrame(data)
df.to_csv(output_file, index=False)
# 调用函数,传入输入文件夹路径和输出CSV文件名
input_folder = "path/to/your/doc/files"
output_file = "extracted_data.csv"
extract_data_from_doc(input_folder, output_file)
```
**注意事项:**
- 如果有包含Excel表格的DOCX文件,上述代码仅适用于纯文本的表格,对于Excel类型的表格,你需要使用`openpyxl`库来处理。
- `os.listdir()`返回的是当前目录下的所有文件和子目录名称,你可能需要额外处理文件类型过滤。
- 如果文件夹很大,一次性加载所有文件可能会占用大量内存,考虑分批处理。
阅读全文