对比两个word文本中的表格信息

 首先安装一个包

pip install python-docx

读取doxc中的文本和表格信息是不一样的

以下先示范一个读取doxc中文本信息的方式

from docx import Document

# 打开Word文档
doc = Document("test.docx")

# 读取文档内容
text = ""
for paragraph in doc.paragraphs:
    text += paragraph.text + "\n"

# 打印文档内容
print(text)

如果文件中有表格信息他也是没有办法读取到的

以下示范一个读取表格信息的方法

from docx import Document

# 打开Word文档
doc = Document("test.docx")
# 读取表格内容
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text)

# 或者可以将表格内容保存到一个嵌套列表中
tables_data = []
for table in doc.tables:
    table_data = []
    for row in table.rows:
        row_data = [cell.text for cell in row.cells]
        table_data.append(row_data)
    tables_data.append(table_data)

# 打印表格内容
for table_index, table in enumerate(tables_data):
    print(f"\nTable {table_index + 1}:")
    for row in table:
        print("\t".join(row))

以上只能读取到表格信息,但是无法读取到表格之外的文本信息

如何对比两个doxc文档中的表格信息

from docx import Document

# 打开Word文档
doc1 = Document("test1.docx")
list1=[]
# 遍历文档中的表格
for table in doc1.tables:
    # 遍历表格的行
    
    for row in table.rows:
        j=0
        stri=''
        # 遍历每行的单元格
        for cell in row.cells:
            if j==1 or j==2:
                # 打印单元格内容
                print(cell.text)
                stri=stri+cell.text
            j=j+1
        print(stri)
        list1.append(stri)
        print()  # 打印空行表示分隔行
    print()  # 打印空行表示分隔表格

print("更新成功了吗")
print(list1)

for table in doc1.tables:

    print(table.rows[-1])

#开始打印第二个文档
doc2= Document("test2.docx")
list2=[]
# 遍历文档中的表格
for table in doc2.tables:
    # 遍历表格的行
    
    for row in table.rows:
        j=0
        stri=''
        # 遍历每行的单元格
        for cell in row.cells:
            if j==0 or j==2:
                # 打印单元格内容
                print(cell.text)
                stri=stri+cell.text
            j=j+1
        print(stri)
        list2.append(stri)
        print()  # 打印空行表示分隔行
    print()  # 打印空行表示分隔表格

print("表2更新成功了吗")
print(list2)


print("开始检查")

for i in list1[1:]:
    count=0
    for j in list2[1:]:
        if i==j:
            count=count+1
            
    if count==0:
        print(i)
print("检查完了")

但如果一个单元格中的信息并不是我想要的全部,我应该怎么办(text.split("."))

from docx import Document

# 打开Word文档
doc1 = Document("test1.docx")
list1=[]
# 遍历文档中的表格
for table in doc1.tables:
    # 遍历表格的行
    
    for row in table.rows[1:]:
        j=0
        stri=''
        # 遍历每行的单元格
        for cell in row.cells:
            if j==1:
                # 打印单元格内容
                # print(cell.text)
                stri=stri+cell.text
            if j==2:
                print(cell.text)
                text=cell.text
                parts = text.split(".")
                print(parts)

                stri=stri+parts[1]
            j=j+1
        # print(stri)
        list1.append(stri)
        print()  # 打印空行表示分隔行
    print()  # 打印空行表示分隔表格

print("更新成功了吗")
print(list1)



# 打开Word文档
doc2 = Document("test2.docx")
list2=[]
# 遍历文档中的表格
for table in doc2.tables:
    # 遍历表格的行
    
    for row in table.rows[1:]:
        j=0
        stri=''
        # 遍历每行的单元格
        for cell in row.cells:
            if j==0:
                # 打印单元格内容
                # print(cell.text)
                stri=stri+cell.text
            if j==1:
                print(cell.text)
                text=cell.text
                parts = text.split(".")
                print(len(parts))
                # print(parts)
                stri=stri+parts[1]
            j=j+1
        # print(stri)
        list2.append(stri)
        print()  # 打印空行表示分隔行
    print()  # 打印空行表示分隔表格

print("第二个表格更新成功了吗")
print(list2)


print("开始检查")

for i in list1:
    count=0
    for j in list2:
        if i==j:
            count=count+1
            
    if count==0:
        print(i)
print("检查完了")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

铁灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值