python读取doc和docx的word文档工具类
需求:
读取目录下所有word文档,对整行空行的进行删除,输出文件名和word文档的内容
docx后缀的:
使用了第三方库 python-docx
来处理 Word 文档。在运行代码之前,您需要使用以下命令安装该库:
pip install python-docx
python
import os
from docx import Document
class FunnyScriptsReader:
def __init__(self, directory):
self.directory = directory
def process_scripts(self):
for filename in os.listdir(self.directory):
if filename.lower().endswith('.doc'):
file_path = os.path.join(self.directory, filename)
self.process_script_file(file_path)
def process_script_file(self, file_path):
document = Document(file_path)
file_name = os.path.basename(file_path)
# 删除整行空行
for paragraph in document.paragraphs:
if not paragraph.text.strip():
runs = paragraph.runs
for run in runs:
run.text = ''
# 输出文件名和文档内容
print("文件名:", file_name)
print("文档内容:")
for paragraph in document.paragraphs:
if paragraph.text.strip():
print(paragraph.text)
print()
# 使用示例
directory = r'D:\BaiduNetdiskDownload\'
reader = FunnyScriptsReader(directory)
reader.process_scripts()
python-docx库读取doc后缀的word文档有问题,可以
win32com库 。
pip install pywin32
import os
import win32com.client
# 定义一个函数,用于删除word文档中的空行
def remove_blank_lines(doc):
paragraphs = doc.Paragraphs
for paragraph in paragraphs:
if paragraph.Range.Text.strip() == "":
paragraph.Range.Delete()
# 定义一个目录路径,用于存放word文档
dir_path = r'D:\BaiduNetdiskDownload'
# 创建一个word应用对象,设置为不可见
word = win32com.client.Dispatch("Word.Application")
word.Visible = False
# 遍历目录下的所有文件,筛选出.doc后缀的文件
for file in os.listdir(dir_path):
if file.endswith(".doc"):
# 拼接文件的完整路径
file_path = os.path.join(dir_path, file)
try:
# 打开word文档
doc = word.Documents.Open(file_path)
# 调用函数,删除空行
remove_blank_lines(doc)
# 输出文件名和文档内容
print("文件名:", file)
print("文档内容:", doc.Content.Text)
# 关闭文档
doc.Close()
except Exception as e:
# 捕获异常,输出错误信息
print("Error:", e)
# 退出word应用
word.Quit()