验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

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

阅读:1082 来源:乙速云 作者:代码code

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

      批量生成word文件

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

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

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

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

      ...

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

      痛点:

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

      安装

      pip install python-docx

      log

      (env_qt) D:codeqt_demodemo>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:userswzappdatalocalpipcachewheels39cac1d3e7abe5ce2e8423382d816e689c056bc26590f48fad8f2
      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:codeqt_demodemo>****

      三方库引入

      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:
              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:UserswzDesktop保安员考试试卷"
          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_list :文件名列表(所有要生成的文件名)
          """
          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, 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:
              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:UserswzDesktop保安员考试试卷"
          document = Document()
          pre_fix = "保安员考试"
          # 生成多个文件名
          # name_all = gen_names(pre_fix, 10)
          #创建多个文件
          # new_many_file(document, name_all)
          # 重命名文件
          # rename_file("tmp")
          # 删除文件
          del_files("tmp")
    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>