zjg121 发表于 2024-4-4 06:52

把word文档拆分成多个文档

word文档中有多个部分,每一部分的开始标志是:段首为数字+冒号(形如1:,9:,13:,……)。
from docx import Document

for i in range(1,14):
    # 输入Word文档路径
    input_docx = f'D:/52pj/fengzhang/老杨.458条人性秘术{str(i).zfill(2)}.docx'
    for j in range(1,100):
      # 输出Word文档路径
      output_docx = f'D:/52pj/fengzhang/fengzhangjie/老杨.458条人性秘术{str(i).zfill(2)}{str(j).zfill(2)}.docx'
      len1 = len(str(j))+1
      len2 = len(str(j+1))+1

      # 加载Word文档
      doc = Document(input_docx)

      # 标记是否已找到“第二章”或“第三章”
      found_chapter_two = False
      found_chapter_three = False

      # 用于存储要保留的段落
      paragraphs_to_keep = []

      # 遍历文档中的段落
      for paragraph in doc.paragraphs:
            # 检查段首三个字符是否是“第二章”或“第三章”
            if paragraph.text[:len1] == f'{str(j)}:':
                found_chapter_two = True
                paragraphs_to_keep.append(paragraph)
            elif paragraph.text[:len2] == f'{str(j+1)}:':
                found_chapter_three = True
                break# 找到“第三章”后停止遍历
            elif found_chapter_two:
                # 如果已经找到了“第二章”,则保留当前段落及以后的段落
                paragraphs_to_keep.append(paragraph)

            # 如果找到“第三章”,则只保留到“第二章”的内容
      # if found_chapter_three:
            # paragraphs_to_keep = paragraphs_to_keep[:1]# 只保留第一个段落(通常是“第二章”本身)

      # 创建一个新的Word文档,并添加要保留的段落
      new_doc = Document()
      if paragraphs_to_keep:
            for paragraph in paragraphs_to_keep:
                new_doc.add_paragraph(paragraph.text, style=paragraph.style)

            # 保存新的Word文档
            new_doc.save(output_docx)

            print(f"处理完成,修改后的内容已保存到 {output_docx}")

sgw1970 发表于 2024-4-4 07:56

不知道源文档拆分后还在吗?

zjg121 发表于 2024-4-4 07:59

sgw1970 发表于 2024-4-4 07:56
不知道源文档拆分后还在吗?

源文件还在。拆分生成的大量新文件放在一个文件夹里了。

毋庸讳言 发表于 2024-4-4 08:09

是否可以自己的要求拆分呢?

zjg121 发表于 2024-4-4 08:26

毋庸讳言 发表于 2024-4-4 08:09
是否可以自己的要求拆分呢?

可以。修改一下每一部分的开始标志就行了。

宜城小站 发表于 2024-4-4 10:14

感谢分享
个人感觉
这样的操作实用性很大

Shebinyang 发表于 2024-4-4 11:46

学习了,先保存,以后用一下试试

lelewuqiong 发表于 2024-4-4 20:52

学习学习

hshcompass 发表于 2024-4-4 22:23

谢谢分享

aluda666 发表于 2024-4-4 23:03

顶贴支撑一下楼主
页: [1] 2
查看完整版本: 把word文档拆分成多个文档