【Python】RPA批量生成word文件/重命名及批量删除

news/2024/5/20 9:39:27 标签: python, rpa, word

word_0">批量生成word文件

场景:需要新建多个类似文件名

比如:今天的事例是新建12个文件名为:

​ 保安员考试试卷1及答案.docx

​ 保安员考试试卷2及答案.docx

​ …

​ 保安员考试试卷12及答案.docx

痛点:

​ 手动操作重复性高,出错率高,易造成人疲劳,降低效率;

安装

pip install python-docx

log

(env_qt) D:\code\qt_demo\demo>pip install python-docx
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting python-docx
Using cached https://pypi.tuna.tsinghua.edu.cn/packages/8b/a0/52729ce4aa026f31b74cc877be1d11e4ddeaa361dc7aebec148171644b
33/python-docx-0.8.11.tar.gz (5.6 MB)
Preparing metadata (setup.py) … done
Collecting lxml>=2.3.2
Downloading https://pypi.tuna.tsinghua.edu.cn/packages/39/54/ddafeec12c7c5d36a322ecc251f981dc8a7e5dff1d3a901646230a4b083
8/lxml-4.9.2-cp39-cp39-win_amd64.whl (3.9 MB)
---------------------------------------- 3.9/3.9 MB 1.4 MB/s eta 0:00:00
Building wheels for collected packages: python-docx
Building wheel for python-docx (setup.py) … done
Created wheel for python-docx: filename=python_docx-0.8.11-py3-none-any.whl size=184519 sha256=595cd9888a3832964d8f2477f
fd5325f596549da8c1dd305e63d5f7b3d24884c
Stored in directory: c:\users\wz\appdata\local\pip\cache\wheels\39\ca\c1\d3e7abe5ce2e8423382d816e689c056bc26590f48fad8f2
0ac
Successfully built python-docx
Installing collected packages: lxml, python-docx
Successfully installed lxml-4.9.2 python-docx-0.8.11

[notice] A new release of pip available: 22.3.1 -> 23.0.1
[notice] To update, run: python.exe -m pip install --upgrade pip

(env_qt) D:\code\qt_demo\demo>****

官方文档:

https://python-docx.readthedocs.io/en/latest/index.html

三方库引入

python">word">import os
word">from docx word">import Document

解释:

1.在文件路径下会获取文件夹下面所有文件,使用os模块;

2.word文档的相关操作使用docx模块;

批量新建文件名

场景:需要新建多个类似文件名

比如:今天的事例是新建12个文件名为:

​ 保安员考试试卷1及答案.docx

​ 保安员考试试卷2及答案.docx

​ …

​ 保安员考试试卷12及答案.docx

痛点:

​ 手动操作重复性高,出错率高,易造成人疲劳,降低效率;

python">word">def gen_names(pre_fix, num):
    """
    批量生成文件名
    :param pre_fix: 文件名的前缀
    :param num: 文件数量
    :return:name_list :文件名列表(所有要生成的文件名)
    """
    word">print("生成文件名列表开始")

    name_list = []
    word">for i word">in range(1, num + 1):
        tmp = pre_fix + str(i)
        name_list.append(tmp)
    word">print("生成文件名列表结束")
    word">return name_list

word_105">生成word文件

生成单个文件

python">word">def new_one_file(document, name):
    """
    生成单个文件
    :param document:
    :param name: 文件名
    :return:
    """
    word">print("单个生成文件开始")
    document.save(name + '.docx')
    word">print("单个生成文件结束")

生成多个文件

python">word">def new_many_file(document, names):
    """
    生成多个文件
    :param document: Document实例对象
    :param names:多个文件的文件名
    :return:
    """
    word">print("批量生成文件开始")
    word">for name word">in names:
        document.save(os.path.join("tmp", name + '.docx'))
    word">print("批量生成文件结束")

重命名文件

python">word">def rename_file(path):
    """
    将path路径下的文件都重命名
    规则:在原文件名后面加上 ---> "及答案." 字段
    :param path:
    :return:
    """
    word">print("重命名开始")
    files = os.listdir(path)
    word">for file word">in files:
        name, doc_type = file.split(".")
        new_name = os.path.join(path, name + "及答案." + doc_type)
        file_tmp = os.path.join(path, file)
        # 语法:
        # os.rename(src, dst) :用于命名文件或目录
        # src:需要修改的文件或目录名。
        # dst:修改后的文件或目录名。
        os.rename(file_tmp, new_name)
    word">print("重命名结束")

删除文件

python">word">def del_files(path):
    """
    删除指定路径下的文件
    :param path:
    :return:
    """
    word">print("删除开始")
    files = os.listdir(path)
    word">for file word">in files:
        os.remove(os.path.join(path, file))
    word">print("删除成功")

函数调用

python">word">if __name__ == '__main__':
    path = r"C:\Users\wz\Desktop\保安员考试试卷"
    document = Document()
    pre_fix = "保安员考试"
    # name_all = gen_names(pre_fix, 10)
    # new_many_file(document, name_all)
    # rename_file("tmp")
    del_files("tmp")

效果展示

批量生成文件
在这里插入图片描述
批量重命名文件

批量重命名
在这里插入图片描述

删除文件
在这里插入图片描述

所有代码

python">word">import os
word">from docx word">import Document


word">def gen_names(pre_fix, num):
    """
    批量生成文件名
    :param pre_fix: 文件名的前缀
    :param num: 文件数量
    :return:name_list :文件名列表(所有要生成的文件名)
    """
    word">print("生成文件名列表开始")

    name_list = []
    word">for i word">in range(1, num + 1):
        tmp = pre_fix + str(i)
        name_list.append(tmp)
    word">print("生成文件名列表结束")
    word">return name_list


word">def new_one_file(document, name):
    """
    生成单个文件
    :param document:
    :param name: 文件名
    :return:
    """
    word">print("单个生成文件开始")
    document.save(name + '.docx')
    word">print("单个生成文件结束")


word">def new_many_file(document, names):
    """
    生成多个文件
    :param document: Document实例对象
    :param names:多个文件的文件名
    :return:
    """
    word">print("批量生成文件开始")
    word">for name word">in names:
        document.save(os.path.join("tmp", name + '.docx'))
    word">print("批量生成文件结束")


word">def rename_file(path):
    """
    将path路径下的文件都重命名
    规则:在原文件名后面加上 ---> "及答案." 字段
    :param path:
    :return:
    """
    word">print("重命名开始")
    files = os.listdir(path)
    word">for file word">in files:
        name, doc_type = file.split(".")
        new_name = os.path.join(path, name + "及答案." + doc_type)
        file_tmp = os.path.join(path, file)
        # 语法:
        # os.rename(src, dst) :用于命名文件或目录
        # src:需要修改的文件或目录名。
        # dst:修改后的文件或目录名。
        os.rename(file_tmp, new_name)
    word">print("重命名结束")


word">def del_files(path):
    """
    删除指定路径下的文件
    :param path:
    :return:
    """
    word">print("删除开始")
    files = os.listdir(path)
    word">for file word">in files:
        os.remove(os.path.join(path, file))
    word">print("删除成功")


word">if __name__ == '__main__':
    path = r"C:\Users\wz\Desktop\保安员考试试卷"
    document = Document()
    pre_fix = "保安员考试"
    # 生成多个文件名
    # name_all = gen_names(pre_fix, 10)
    #创建多个文件
    # new_many_file(document, name_all)
    # 重命名文件
    # rename_file("tmp")
    # 删除文件
    del_files("tmp")


http://www.niftyadmin.cn/n/119214.html

相关文章

day04浮动

文章目录一、布局方式1. 普通文档流2. 浮动布局1)属性2)取值3)特点4)常见问题5)解决3. 定位布局1)属性2)取值3)偏移属性4)分类5)堆叠次序二、背景属性1. 背景…

Restful API 设计规范

1. 简介 目前 "互联网软件"从用客户端/服务端模式,建立在分布式体系上,通过互联网通讯,具有高延时、高开发等特点。但是软件开发和网络是两个不同的领域,交集很少。要使得两个融合,就要考虑如何在互联网环境…

uipath实现滑动验证码登录

现实需求 在进行RPA流程设计过程中,遇到登录系统需要滑动验证的情况,如图所示: 此时需要在RPA流程设计中,借助现有的活动完成模拟人工操作,完成验证登录操作。 设计思路 这个功能流程的设计思路大体如下: …

Android 9.0 系统settings app详情页控制开启关闭流量数据的开关

1.概述 在9.0的系统rom定制化开发中,在原生Settings张的app详情页中有后台数据开关,限制app在后台使用流量导致流量流失 目前有需求要求不让app使用数据流量,前台后台都不能使用流量 所以就要根据这个后台流量开关来看下具体如何实现功能 2.系统settings app详情页控制开启关…

Spring-静态代理与动态代理

静态代理 抽象角色 : 一般使用接口或者抽象类来实现 真实角色 : 被代理的角色 代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 . 客户 : 使用代理角色来进行一些操作 优点 可以使得我们的真实角色更加纯粹 . 不再去关注一些公共的事情公共的业务由代…

Microsoft designer 使用教程

继各种ai绘图软件诞生之后 dell 2 playground.... 微软自己研发的重量级产品 Microsoft designer 上线了 Microsoft Designer 是微软公司推出的一款设计工具,主要用于快速创建Web和移动应用程序的原型设计。它提供了一系列的工具和模板,可以帮助用户…

http客户端Feign

Feign替代RestTemplate RestTemplate方式调用存在的缺陷 String url"http://userservice/user/"order.getUserId();User user restTemplate.getForObject(url, User.class); 代码可读性差,变成体验不统一; 参数复杂的时候URL难以维护。 &l…

Handler与线程

简介 Handler提供的种异步消息处理机制是:当它发出一个消息进入消息队列后,发送消息的函数立刻返回,接着主线程会逐个地从消息队列中把消息取出,然后对消息进行处理。明显,Handler发送消息和接收消息是异步进行的&…