开发者

Python实现批量生成,重命名和删除word文件

开发者 https://www.devze.com 2023-03-31 09:22 出处:网络 作者: 魔都吴所谓
目录批量生成word文件安装三方库引入批量新建文件名生成word文件重命名文件删除文件函数调用效果展示所有代码批量生成word文件
目录
  • 批量生成word文件
    • 安装
    • 三方库引入
    • 批量新建文件名
    • 生成word文件
    • 重命名文件
    • 删除文件
    • 函数调用
  • 效果展示
    • 所有代码

      批量生成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: pypi.tuna.tsinghua.edu.cn/simple

      Collecting python-docx

      Using cached pypi.tuna.tsinghua.edu.cn/packages/8b…

      33/python-docx-0.8.11.tar.gz (5.6 MB)

      Preparing metadata (setup.py) ... done

      Collecting lXML>=2.3.2

      Downloading pypi.tuna.tsinghua.edu.cn/packages/39…

      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

      Successfullypython 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

      三方库引入

      import os
      from docx import Document
      

      解释:

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

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

      批量新建文件名

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

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

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

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

      ​ ...

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

      痛点:

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

      def gen_names(pre_fix, num):
          """
          批量生成文件名
          :param pre_fix: 文件名的前缀
          :param num: 文件数量
          :return:name_list :文件名列表(所有要生成的文件名)
          """
          print("生成文件名列表开始")
      
          name_list = []
          for i in range(1, num + 1):
              tmp = pre_fix + str(i)
              name_list.append(tmp)
          print("生成文件名列表结束")
          return name_list
      

      生成word文件

      生成单个文件

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

      生成多个文件

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

      重命名文件

      def rename_file(path):
          """
          将path路径下的文件都重命名
          规则:在原文件名后面加上 ---> "及答案." 字段
          :param path:
          :return:
          """
          print("重命名开始")
          files = os.listdir(path)
          for file 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)
          print("重命名结束")
      

      删除文件

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

      函数调用

      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文件

      批量重命名文件

      Python实现批量生成,重命名和删除word文件

      删除文件

      Python实现批量生成,重命名和删除word文件

      所有代码

      import os
      from docx import Document
      
      
      def gen_names(pre_fix, num):
          """
          批量生成文件名
          :param pre_fix: 文件名的前缀
          :param num: 文件数量
          :return:name_li编程客栈st :文件名列表(所有要生成的文件名)
          """
          print("生成文件名列表开始")
      
          name_list = []
          for i in range(1, num + 1):
              tmp = pre_fix + str(i)
              name_list.append(tmp)
          print("生成文件名列表结束")
          return name_list
      
      
      def new_one_file(document, namhttp://www.devze.come):
          """
          生成单个文件
          :param document:
          :param name: 文件名
          :return:
          """开发者_JAVA
          print("单个生成文件开始")
          document.save(name + '.docx')
          print("单个生成文件结束")
      
      
      def new_many_file(document, names):
          """
          生成多个文件
          :param document: Document实例对象
          :param names:多个文件的文件名
          :return:
          """
          print("批量生成文件开始")
          for name in names:
              document.save(os.path.join("tmp", name + '.docx'))
          print("批量生成文件结束")
      
      
      def rename_file(path):
          """
          将path路径下的文件都重命名
          规则:在原文件名后面加上 ---> "及答案." 字段
          :param path:
          :return:
          """
          print("重命名开始")
          files = os.listdir(path)
          for file 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)
          print("重命名结束")
      
      
      def del_files(path):
          """
          删除指定路径下的文件
          :param path:
          :return:
          """
          print("删除开始")
          files = os.listdir(path)
          for file in files:
              os.remove(os.path.join(path, file))
          print("删除成功")
      
      
      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文件的详细内容,更多关于Python word的资料请关注我们其它相关文章!

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消