python-docx的理解:
document是整个文件,包含一个paragraphs列表;
paragraphs是段落的列表,paragraphs[i].text是第i段落的文字,paragraphs[i]包含一个runs列表;
runs是文字块的列表,runs[i].text是第i文字块的文字,不包含标点符号。
**问题:**现有两个字典存在两个word文件中,一个大字典,一个小字典,现在需要找出大字典中哪些字在小字典里没有
解决代码:
import sys
import docx
# 获取文档对象
file = docx.Document(
r"总字典路径.docx")
file2 = docx.Document(
r"需要删除的小字典路径.docx")
# 把所有字加到一个列表中,创建一个字典
total_text = []
for para in file.paragraphs:
for run_1 in para.runs:
total_text.extend(run_1.text)
# 挨个字对比
num = 0 # 文档汉字个数
for para_2 in file2.paragraphs:
# if para_2.text == "标题": # 跳过这个文件的标题
# continue
for run in para_2.runs:
if '\u4e00' <= run.text <= '\u9fff': # 判断是否为汉字
if run.text in total_text: