使用python不改变格式的情况下批量替换word里面的内容

需要使用如$name,${id}这样的模板在这里插入图片描述

import os
import io
from python_docx_replace import docx_replace,docx_get_keys
from docx import Document
from random import randrange
student_list='''1,张三,2202330301
2,李四,2202330302
3,王五,2202330303
'''


review=["思路清晰、语言表达准确,整体表现良好",",准备工作一般,整体表现良好","思路清晰、语言表达一般、回答问题有理论依据,","有个别格式不对的需要修改。"]
score=['70', '88', '81']

students=student_list.split("\n")

# print(students)
students_dict_array=[]

for student in students:
    student_dict={}
    student_dict["name"]=student.split(",")[1]
    student_dict["sid"]=student.split(",")[2]
    students_dict_array.append(student_dict)

print(students_dict_array)

# 图片存放的路径
path = "C:\\BaiduSyncdisk\\大学生信息安全竞赛评分表\\"
def alter(file,name,id,num):
    """
    替换文件中的字符串
    :param file:文件名
    :param old_str:就字符串
    :param new_str:新字符串
    :return:
    """
    doc = Document(file)
    keys = docx_get_keys(doc) # Let's suppose the Word document has the keys: ${name} and ${phone}
    print(keys)  # ['name', 'phone']
# call the replace function with your key value pairs
    docx_replace(doc, name=name,id=id,content=review[randrange(len(review))],score=score[num])
    doc.save(os.path.join(path,"new",file))

 
# 遍历更改文件名
num = 0
for file in os.listdir(path):
    alter(os.path.join(path,file),students_dict_array[num]["name"],students_dict_array[num]["sid"],num)
    os.rename(os.path.join(path,file),os.path.join(path,"选手-"+students_dict_array[num]["sid"][-2:]+students_dict_array[num]["name"]+"-记录表")+".doc")
    num = num + 1

参考:https://stackoverflow.com/a/72639838/10096812

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/640116.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

产品数据特性驱动设计

一、什么是数据特性 一个产品在宏观的视角下,是不同功能模块的有机组合;在微观的视角上,是千丝万缕的数据连接。 基于模块化设计思想,对产品进行业务化梳理,对业务进行模块化拆分出功能模块,功能模块就是产品的“逻辑”,而功能中的数据就是“特性”。 业务:比较固定…

防范TOCTOU竞态条件攻击

防范TOCTOU竞态条件攻击 在软件开发过程中,我们常常会遇到需要在使用资源之前检查其状态的情况。然而,如果资源的状态在检查和使用之间发生了变化,那么检查的结果可能会失效,导致软件在资源处于非正常状态时执行无效操作。这种时…

如何提升百度小程序的收录?百度小程序如何做优化?

​ 如何通过百度小程序获得更多的自然流量?这是做百度小程序肯定要考虑的问题,做百度小程序的目的就是想借助百度生态,做相应的关键词给自己的小程序引流,如何把流量给做起来呢,接下来我从不同的方面给大家进行分析讲解…

[牛客网]——C语言刷题day5

答案:D 解析:因为两个指针都指向的字符串常量,不能被重新赋值,*p*q是错误的 在C语言中,赋值语句的返回值都是所赋的值,所以才会有连续赋值的语句,例如ab10,因此,这里的i…

Github 2024-05-25 Rust开源项目日报Top10

根据Github Trendings的统计,今日(2024-05-25统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10Svelte项目1TypeScript项目1Python项目1Go项目1Dart项目1RustDesk: 用Rust编写的开源远程桌面软件 创建周期:1218 天开发语言:Rust…

sw套合样条曲线

套合样条曲线,可以变成一条曲线,然后可以进行分段

springcloud 之 Ribbon Hystrix Feign bus 动态修改配置

Ribbon 是微服务架构图中负责负载均衡的 组件。 BeanLoadBalancedpublic RestTemplate getRestTemplate() {return new RestTemplate();}测试如下: //微服务方式 Ribbon方式GetMapping("ribbon/{name}")public String RibbonTest(PathVariable String nam…

SSRF服务端请求伪造漏洞原理与修复及靶场实践

SSRF服务端请求伪造漏洞原理与修复及靶场实践 SSRF漏洞原理与检测 SSRF(Server-Side Request Forgery,服务器端请求伪造)漏洞是一种因为服务端提供了远程访问服务,而并未对请求目标进行限制或限制不严格而引起的安全漏洞&#x…

极空间部署本地最强私有化PDF工具箱『Stirling-PDF』

极空间部署本地最强私有化PDF工具箱『Stirling-PDF』 哈喽小伙伴们好,我是Stark-C~ 关注我的粉丝应该知道,我在前几天教大家怎么在NAS上部署本地最强私有化PDF工具箱『Stirling-PDF』: 🔺评论区好几位小伙伴都提到了极空间的部署…

【免费Web系列】大家好 ,今天是Web课程的第六天点赞收藏关注,持续更新作品 !

这是Web第一天的课程大家可以传送过去学习 http://t.csdnimg.cn/K547r 后端Web实战(IOCDI) 前言 Web开发的基础知识 ,包括 Tomcat、Servlet、HTTP协议等,我们都已经学习完毕了,那接下来,我们就要进入Web开发的实战篇。在实战篇中…

基于自抗扰控制器和线性误差反馈控制律(ADRC-LSEF)的控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 ADRC原理 4.2 线性误差反馈控制律(LSEF) 4.3 ADRC-LSEF融合系统 5.完整工程文件 1.课题概述 基于自抗扰控制器和线性误差反馈控制律(ADRC-LSEF)的控制系统simulink建模与仿真。 2.系统仿真结果 …

[Unity报错] The type or namespace name ‘Newtonsoft‘ could not be found

简介 Unity在跑别人的代码时,控制台报了以下错误 The type or namespace name Newtonsoft could not be found 鉴于这块资料较少,写一下教程帮助后来者。 报错的原因主要是因为缺少Newtonsoft.json这个包,导致Unity在using该库时出现错误。…

【Vue3】封装axios请求(cli和vite)

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 Vue 【Vue3】env环境变量的配置和使用(区分cli和vite) 文章目录 Vue前言一、常见用法二、vue3cli封装接口1..env配置2..dev(开…

LuatOS-iRTU

DTU 英文全称为Data Transfer Unit,表示数据传输单元。 是专门用于将串口数据转为IP数据或将I[数据转换为串口数据,通过无线通信网络进行传送的无线终端设备。 业务逻辑包括数据采集上报: 传感器采集数据发送给单片机,单片机由串…

数据库常用命令(1)

DML 1.添加数据(insert into) insert into 表名 values (值1,值2....); 表示成功运行: 2.修改数据(update) update 表名 set 字段名1值1,字段名2值2.....【where条件】 3.删除数据&#xff0…

STM32使用旋转编码开关

一、旋转编码开关如何工作 编码器内部有一个开槽圆盘,连接到公共接地引脚 C。它还具有两个接触针 A 和 B,如下所示。 当您转动旋钮时,A 和 B 按照特定顺序与公共接地引脚 C 接触,具体顺序取决于转动旋钮的方向。 当它们与公共地接…

23种设计模式之一————外观模式详细介绍与讲解

外观模式详细讲解 一、概念二、 外观模式结构核心思想及解释模式的UML类图模式角色应用场景模式优点模式缺点 三、实例演示图示代码展示运行结果 一、概念 外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口&#xff0c…

详细分析Vue按钮间距的优化方式(附Demo)

目录 前言1. 按钮间距2. 垂直间距 前言 正常间距如下&#xff1a; 其Demo如下&#xff1a; <el-table-column label"操作" align"center"><template #default"scope"><el-buttonlinktype"primary"click"openFor…

XSS漏洞:pikachu靶场中的XSS通关

目录 1、反射型XSS&#xff08;get&#xff09; 2、反射性XSS&#xff08;POST&#xff09; 3、存储型XSS 4、DOM型XSS 5、DOM型XSS-X 6、XSS之盲打 7、XSS之过滤 8、XSS之htmlspecialchars 9、XSS之href输出 10、XSS之js输出 最近在学习XSS漏洞&#xff0c;这里使用…

苹果CMS:怎么重新安装

当我们安装好苹果CMS之后苹果cms&#xff1a;介绍及安装&#xff0c;但是最好我们在安装的时候配置好对应配置后&#xff0c;备份一份&#xff0c;如果不记得哪里配置出了问题&#xff0c;出现一些不可预料的问题&#xff0c;那我们可以简单暴力的直接重新安装&#xff0c;我们…