首页 > 编程语言 >python在word文件指定的文字下划线

python在word文件指定的文字下划线

时间:2023-12-05 14:44:50浏览次数:37  
标签:index word 下划线 python substring path out string

# coding:utf-8
import os

from win32com.client import Dispatch


def get_string_index(substring, string):
    """
    获取同一字符串中的多个相同字符串的起始索引
    :param substring: 需查找的字符串
    :param string: 被查找的字符串
    :return:
    """
    indices = []
    index = string.find(substring)

    while index != -1:
        indices.append(index)
        index = string.find(substring, index + 1)

    return indices


def word_underline_text(input_path, substring, out_path=None):
    """
    给Word文档中的指定字符下划线
    :param input_path: word文件路径
    :param substring: 需划线的字符
    :param out_path: 输出文件路径
    :return:
    """
    if not out_path:
        out_path = f'{os.path.splitext(input_path)[0]}_注释{os.path.splitext(input_path)[1]}'

    app = Dispatch('Word.Application')
    app.Visible = 0
    doc = app.Documents.Open(input_path)

    for paragraph in doc.paragraphs:
        index_list = get_string_index(substring, paragraph.Range.Text)
        for idx in index_list:
            for x in range(len(substring)):
                paragraph.Range.Characters(idx + x + 1).Font.Underline = 6  # 设置下划线
            paragraph.Range.Font.UnderlineColor = 255  # 设置下划线颜色为红色

    doc.SaveAs(out_path)
    app.Quit()

标签:index,word,下划线,python,substring,path,out,string
From: https://www.cnblogs.com/rong-z/p/17877161.html

相关文章

  • python第二天
    0.以下哪个变量的命名不正确?为什么?  (A)MM_520  (B)_MM520_  (C)520_MM  (D)_520_MMC,数字不能在首位1.在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗?>>>myteacher='小甲鱼'>>>yourteacher=myteacher>>>yourteacher='黑夜'>>>print(mytea......
  • 实例讲解Python 解析JSON实现主机管理
    本文分享自华为云社区《Python解析JSON实现主机管理》,作者:LyShark。JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本形式表示数据。JSON是一种独立于编程语言的数据格式,因此在不同的编程语言中都有对应的解析器和生成器。JSON格式的设计......
  • 【Python/数据库】SQLAlchemy基础操作
    一、SQLAlchemy——创建表#ORM#1.Class-Obj#2.创建数据库引擎#3.将所有的Class序列化为数据表#4.ORM操作-CRUD(增删改查操作的简称)1.创建一个class#create_table.pyfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base......
  • 【Python/数据库】SQLAlchemy一对多,多对多操作
    SQLAlchemy一对多操作1.创建多表#create_table_ForeginKey.pyfromsqlalchemy.ext.declarativeimportdeclarative_basefromsalalchemyimportColumn,INT,VARCHAR,ForeignKeyfromsqlalchemyimportcreate_engineBase=declarative_base()classStudent(Base)......
  • python练习
    1将数字汉字符号一起打印2大小写转换首字母大写3使用数学函数4注释5对字符串求长度6通过索引获取单个字符7布尔类型8空值类型9查找所属类型type10列表将数字汉字符号一起打印name="璃月"date="12月5号"message=f'{name}您好,今天是:{date}'print(message)或者可以......
  • 使用Python发送HTTP请求的最佳实践:让你的代码锐利如刀!
    在当今的数字化时代,使用Python发送HTTP请求已经成为了许多开发人员的日常任务。无论是进行API交互、网页爬取,还是构建网络服务,掌握Python的HTTP请求技巧都至关重要。但是,要想在竞争激烈的编程领域中脱颖而出,你需要掌握一些最佳实践,让你的代码锐利如刀!安装必要的库首先,确保你已经安......
  • python文件不显示cmd黑窗口,打包py,pyw文件为exe文件
    问题描述:编写的python文件为定时任务,需要长时间运行,但是打开的cmd黑色窗口看起来很不舒服,于是打包为exe文件,隐藏cmd黑色窗口步骤:1.使用pipinstallpyinstaller命令安装pyinstaller(前提是已安装python);2.很多时候出现pip版本过老的报错,此时使用pip--version查看pip版本,确定......
  • 修改python打包后的窗体图标、任务栏图标、exe图标
    前言我python开发的GUI界面(图形用户界面)一直是tkinter,打包exe一直是Pyinstaller。但是打包出来的exe图标、状态栏图标、窗体左上角图标一直是默认的羽毛,我想自定义。效果最后使用base64创建临时ico解决了该问题步骤创建icoToBase64.py,内容如下:importbase64#ico......
  • Python编程:从入门到实践--Chapter16
    在16章的json数据测试如下代码时报错:[Errno22]Invalidargument:'eq_data\readable_eq_data.json'#将数据作为字符串读取并转换为python对象path=Path('eq_data\eq_data_1_day_m1.json')contents=path.read_text()all_eq_data=json.loads(contents)#将数据文件转换为......
  • 深入探讨 Python 中的装饰器和上下文管理器
    Python作为一门灵活而强大的语言,提供了许多高级特性,其中装饰器(Decorators)和上下文管理器(ContextManagers)是其中两个非常有用的概念。这两个功能性特性提供了对代码结构和行为进行修改和控制的强大工具。它们允许程序员在不修改源代码的情况下,添加、修改或扩展函数或类的功能,帮助......