python对docx文件进行处理,识别docx文件内容是否带有某个词

学校给了我一个任务,有几百个文件,有些是docx格式,有些是doc格式,有些事pdf格式

!!!!!!需要注意的是,这个代码不能处理pdf和doc文件,幸好学校给我的那几百个文件里面,pdf、doc占比不是很大,因此对于这两类文件,我就是一个一个打开找的!!!!!!

任务为:在这几百文件里面找出内容里面含有 “小花” 、 “大树” 、“绿草” 这些字眼的文件

直接上代码,我慢慢解释

from docx import Document
import os


#读取文档
path='C:/Users/lenovo/Desktop/encode'
files= os.listdir(path)

这一步为读取你需要处理的文件的路径,以我的这个任务为例,我那几百个文件在 encode这个文件夹下

for file in files:
    File=file.split('.')
    # 一波小细节,这里面会把slip之后的结果赋给另一个变量 File,和file是不同的,改了名字。
    # 为了之后能继续用flie这个变量

    if 'pdf' in File:
        print(file+' is pdf file')
        continue
    if 'doc' in File:
        print(file + ' is doc file')
        continue
    ex=[]
    doc = Document(path+'/'+file) #filename为word文档

    # 处理段的内容,非表格
    # 有时候docx文件内会有表格的出现,有表格的话,表格里面的内容会由另外的命令来提取出来
    check=['小花','大树','绿草']
    pl = [ paragraph.text for paragraph in doc.paragraphs] 
    for i in pl:
        result=i.strip()
        # strip() 将句子前后的空格都去除
        for c in check:
            res=result.find(c)   # 这一步就是查找是否文章内容包含了那几个词
            if res == -1:  # 就是不包含
                res=-1
            else:          
  # 就是包含,但是find函数会把那个词的位置也给你标出来,一般输出的为数字 例如238等等,就是那个词的位置在第238个字,在这里,我把它全部换成1,1就仅仅代表包含那个词而已
                res=1
            ex.append(res)


    # 处理word中的表格
    for tb in doc.tables:
        for rw in tb.rows:
            for cell in rw.cells:
                text=cell.text
                for c in check:
                    res=text.find(c)
                    if res == -1:
                        res = -1
                    else:
                        res = 1
                    ex.append(res)

    if 1 in ex:
    # 如果ex列表里面包含1,那就说明是有那些词的其中一个的
        print(file+' is possible')

!!!!!!需要注意的是,这个代码不能处理pdf和doc文件,幸好学校给我的那几百个文件里面,pdf、doc占比不是很大,因此对于这两类文件,我就是一个一个打开找的!!!!!!

-------------------------

不知道为啥总是说我篇幅太短。。。。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值