首先安装一个包
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("检查完了")