把word文档拆分成多个文档

查看 184|回复 9
作者:zjg121   
word文档中有多个部分,每一部分的开始标志是:段首为数字+冒号(形如1:,9:,13:,……)。
[Python] 纯文本查看 复制代码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   

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


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

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

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


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

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

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

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

学习学习
hshcompass   

谢谢分享
aluda666   

顶贴支撑一下楼主
您需要登录后才可以回帖 登录 | 立即注册

返回顶部