Python实现中文Word文件内容重复率对比及保存

使用python-docx库,可以方便地读取和比较两个中文Word文件的正文和表格内容。以下代码示例演示了如何实现该功能:

from docx import Document

def compare_word_files(file1, file2):
    # 读取第一个文件
    doc1 = Document(file1)
    # 读取第二个文件
    doc2 = Document(file2)

    # 获取第一个文件的正文内容
    text1 = '
'.join([paragraph.text for paragraph in doc1.paragraphs])
    # 获取第二个文件的正文内容
    text2 = '
'.join([paragraph.text for paragraph in doc2.paragraphs])

    # 获取第一个文件的表格内容
    tables1 = []
    for table in doc1.tables:
        for row in table.rows:
            for cell in row.cells:
                tables1.append(cell.text)

    # 获取第二个文件的表格内容
    tables2 = []
    for table in doc2.tables:
        for row in table.rows:
            for cell in row.cells:
                tables2.append(cell.text)

    # 计算正文内容的重复率
    text_similarity = calculate_similarity(text1, text2)
    print(f'正文内容重复率:{text_similarity}%')

    # 计算表格内容的重复率
    table_similarity = calculate_similarity(tables1, tables2)
    print(f'表格内容重复率:{table_similarity}%')

    # 将重复部分保存到文档
    save_duplicates(text1, text2, tables1, tables2)

def calculate_similarity(content1, content2):
    # 计算重复率
    similarity = 0
    if content1 and content2:
        similarity = len(set(content1).intersection(content2)) / len(set(content1).union(content2)) * 100
    return similarity

def save_duplicates(text1, text2, tables1, tables2):
    # 保存重复部分到文档
    doc = Document()
    doc.add_heading('重复部分', level=1)

    doc.add_heading('正文内容', level=2)
    doc.add_paragraph('
'.join(set(text1).intersection(text2)))

    doc.add_heading('表格内容', level=2)
    doc.add_paragraph('
'.join(set(tables1).intersection(tables2)))

    doc.save('duplicates.docx')

# 调用函数比较两个word文件
compare_word_files('file1.docx', 'file2.docx')

代码说明:

  1. 该代码首先使用python-docx库读取两个Word文件的内容。
  2. 然后,分别提取两个文件的正文和表格内容。
  3. 使用calculate_similarity函数计算正文和表格内容的重复率。
  4. 最后,使用save_duplicates函数将重复的内容保存到一个新的Word文档中。

注意事项:

  • 该代码只能比较两个Word文件的正文和表格内容的重复部分,并将重复部分保存到一个新的Word文件中。
  • 如果需要更复杂的比较功能,可以根据自己的需求修改代码。
  • 使用该代码前,需要先安装python-docx库。
Python实现中文Word文件内容重复率对比及保存

原文地址: http://www.cveoy.top/t/topic/fCFi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录