SOS!!!如何在word文本中的。和双引号后面进行换行,但对双引号中的出现的句号不做处理。
回答
收藏

SOS!!!如何在word文本中的。和双引号后面进行换行,但对双引号中的出现的句号不做处理。

掘金喵
2024-07-04 04:54·浏览量:182
掘金喵
发布于 2024-07-04 04:54182浏览

# 使用此指令前,请确保安装必要的Python库,例如使用以下命令安装:
# pip install pywin32

import win32com.client as win32

from xbot importprint
from
typing import *

definsert_line_break_after_period(docx_path: str):
"""
   title: 在Word文档中的句号后面插入换行符(除去双引号中包含的句号)
   description: 该函数加载指定路径的Word文档,遍历文档中的每个段落,检查段落中是否包含句号,如果句号不在双引号中,则在句号后面插入一个换行符,并保留原有样式。
   inputs:
       - docx_path (str): Word文档的文件路径,eg:"your_document.docx"
   outputs:
   """
# 打开Word应用程序

    word_app = win32.Dispatch("Word.Application")

    word_app.Visible = False

# 打开指定路径的Word文档

    doc = word_app.Documents.Open(docx_path)

# 遍历文档中的每个段落
for para in doc.Paragraphs:

        para_text = para.Range.Text

        new_text = ""

        in_quotes = False
for
i, char inenumerate(para_text):
if char == '“':

                in_quotes = True
elif
char == '”':

                in_quotes = False
if
char == '。'andnot in_quotes:

                new_text += char + "\n"
else:

                new_text += char

        para.Range.Text = new_text

# 保存文档

    doc.Save()

    doc.Close()

    word_app.Quit()

尝试过的方案

现在的问题是,win32可以识别到文章中的英文“”,用这种方法可以实现在每个“”后面插入换行符,但让它识别文章。时,哪怕写了遍历文档中的每个段落,检查段落中是否包含句号,如果句号不在双引号中,则在句号后面插入一个换行符,并保留原有样式。

他也会对“”中间的句号进行换行处理,求大佬们给个方案~

收藏
全部回答1
最新
发布回答
回答