需求:获取指定文件夹下的所有 word 文件的文件名及文本数据,并将其写入至 xlsx 文件
实现思路
- 获取指定文件夹下的所有 word 文件名,存至 list1 中
- 将路径和文件名拼接,依次打开每个 word 文件,读取文本内容,存入 list2
- 将两个 list(包含 word 文件名和 word 文本内容)拼接,转成 DataFrame
- 将 DataFrame 写入 excel 文件
代码实现
# 查看当前文件路径
pwd
1. 导入库
import os
import docx
import pandas as pd
2. 获取 word 文件名
path = "D:\\Code" # word文件所在的文件夹目录
files= os.listdir(path) # 获取文件夹下的所有文件名称
3. 获取 word 文本内容
file_str_list = [] # 保存所有文档的文本内容
for i in range(len(files)): # 遍历目录下的所有文件夹
file_path = path + '\\' + files[i]
file = docx.Document(file_path) # 获取文档对象
file_str = '' # 临时保存每篇文档的文本
# 逐段落读取每一段的内容
for para in file.paragraphs:
# 去除所有空字符,包括空格、换行(\n)、制表符(\t)等
para.text = ''.join(para.text.split())
file_str = file_str + para.text
file_str_list.append(file_str)
# 输出所有文档文本内容构成的list
file_str_list
4. 拼接数据
# 将list转为DataFrame结构
df = pd.DataFrame((zip(files, file_str_list)), columns=['title', 'text'])
5. 写入文件
# 保存到本地excel
df.to_excel("data_zh.xlsx", index=False)