首先安装一个包
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=0stri=''# 遍历每行的单元格for cell in row.cells:if j==1 or j==2:# 打印单元格内容print(cell.text)stri=stri+cell.textj=j+1print(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=0stri=''# 遍历每行的单元格for cell in row.cells:if j==0 or j==2:# 打印单元格内容print(cell.text)stri=stri+cell.textj=j+1print(stri)list2.append(stri)print() # 打印空行表示分隔行print() # 打印空行表示分隔表格print("表2更新成功了吗")
print(list2)print("开始检查")for i in list1[1:]:count=0for j in list2[1:]:if i==j:count=count+1if 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=0stri=''# 遍历每行的单元格for cell in row.cells:if j==1:# 打印单元格内容# print(cell.text)stri=stri+cell.textif j==2:print(cell.text)text=cell.textparts = 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=0stri=''# 遍历每行的单元格for cell in row.cells:if j==0:# 打印单元格内容# print(cell.text)stri=stri+cell.textif j==1:print(cell.text)text=cell.textparts = 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=0for j in list2:if i==j:count=count+1if count==0:print(i)
print("检查完了")