当前位置: 首页 > news >正文

做得好的营销网站/百度云搜索引擎入口官网

做得好的营销网站,百度云搜索引擎入口官网,哪些网站设计的高大上,手机网站建设新闻批量筛选docx文档中关键词 文章目录 批量筛选docx文档中关键词前言一、做成什么样子二、基本架构三、前期输入模块1.引入库2.路径输入3.关键词输入 三、数据处理模块1.基本架构2.如果是docx文档2.1.读取当前文档内容2.2.遍历匹配关键字2.3.触发匹配并记录日志 3.如果目录下还有…

批量筛选docx文档中关键词


文章目录

  • 批量筛选docx文档中关键词
  • 前言
  • 一、做成什么样子
  • 二、基本架构
  • 三、前期输入模块
    • 1.引入库
    • 2.路径输入
    • 3.关键词输入
  • 三、数据处理模块
    • 1.基本架构
    • 2.如果是docx文档
      • 2.1.读取当前文档内容
      • 2.2.遍历匹配关键字
      • 2.3.触发匹配并记录日志
    • 3.如果目录下还有一个目录
      • 3.1.判断并生成新目录
      • 3.2.获取子目录里的东西并遍历它
      • 3.3.接着判断如果是docx文档
      • 3.4.遍历匹配关键字
      • 3.5.触发匹配并记录日志
  • 总结


前言

在工作中经常会遇到,需要检查文档千万不能出现某个关键词,一个文档那还好说。但如果有成千上百个需要检查呢?
下面来给大家介绍一个批量检查的教程。

在这里插入图片描述


一、做成什么样子

  1. 支持当前目录下所有docx文档内容的检查。
  2. 支持当前目录下的子目录里面所有的docx文档内容的检查。
  3. 当前目录出现的问题会在当前目录生成日志文件记录下来。
  4. 日志格式为:<<文件绝对路径>> 文档中出现了关键词:《关键词》。
  5. 支持批量输入关键词,所有关键词都会进行逐一对比。

下面给大家展示一下效果图。
在这里插入图片描述

二、基本架构

主要包括以下几部分:

  1. 库输入模块
  2. 路径输入模块
  3. 关键词输入模块
  4. 数据处理模块

三、前期输入模块

库、路径、关键词比较简单。我就把它们全部写到这一节。

1.引入库

代码如下:

import docx
import os
import re

docx:用来读取文档内容的。
os:用来搞定一系列路径问题。
re:正则表达式模块,用来给关键词搞精确匹配的。


2.路径输入

代码如下:

print(r'请输入文档完整路径(例子:E:\vtest):', end='')
file_path = input()# 获取目录下的所有条目
entries = os.listdir(file_path)
print(entries)

输入路径后,程序会先获取一下当前路径下的东西,形成一个列表并打印出来。


3.关键词输入

代码如下:

# 获取关键词列表
Prohibited_lists = []
while True:print('请输入要查询的关键字(例子:奥利给),按q退出输入:', end='')Prohibited_words = input()if Prohibited_words == 'q':breakProhibited_lists.append(Prohibited_words)print("退出循环,禁止词汇列表:", Prohibited_lists)

首先,创建一个空列表,用来存储用户输入的关键词。
其次,一个while循环,用来保持用户可以一直输入关键词。
然后,关键词触发,当用户输入q可以退出输入关键程序。
最后,打印一条信息,告诉用户都有哪些关键词会进行匹配。


三、数据处理模块

这里我先写一下处理逻辑。

1.基本架构

代码如下:

for entry in entries:if entry.endswith('.docx'):    # 如果是docx文档...........       elif os.path.isdir(os.path.join(file_path, entry)):    # 如果目录里的东西还是个目录...........

首先,搞个循环结构,遍历一下用户输入的路径下的东西。
其次,对这些东西进行判断,进行两中不同的操作。
下面我将会按照这个结构顺序来写。


2.如果是docx文档

2.1.读取当前文档内容

代码如下:

for entry in entries:if entry.endswith('.docx'):    # 如果是docx文档# 使用os.path.join()构造完整文件路径full_entry_path = os.path.join(file_path, entry)# 使用 python-docx 打开文档doc = docx.Document(full_entry_path)# 将每一个段落的文本合并为一个字符串text = " ".join([para.text for para in doc.paragraphs])

首先,根据当前遍历的文件和用户输入的路径来共同构成完整文件路径。
其次,根据完整文件路径,读取文件内容。
最后,将每一个段落的文本合并为一个字符串,便于后面的关键字匹配。


2.2.遍历匹配关键字

代码如下:

        # 遍历关键字列表for Prohibited_list in Prohibited_lists:# 正则表达式匹配关键字ProhibitedRegex = re.compile(rf'.*{Prohibited_list}+.*')mo = ProhibitedRegex.search(text)

这里我们用的是正则表达式匹配关键字。看不懂的同学要去看下正则表达式的知识点喽。

ProhibitedRegex = re.compile(rf’.{Prohibited_list}+.') 这行代码创建了一个正则表达式对象,用于查找包含在 Prohibited_list 关键词。

mo = ProhibitedRegex.search(text) 这行代码使用了上面创建的正则表达式对象来搜索 text 中是否存在匹配的禁止词汇。如果找到匹配项,则返回一个匹配对象(MatchObject),否则返回 None。


2.3.触发匹配并记录日志

代码如下:

            # 如果匹配到了关键字if mo is not None:# 使用os.path.join()构造完整文件路径full_text_path = os.path.join(file_path, 'problems.txt')# 将问题写入text文档,并保存到当前目录with open(full_text_path, 'a') as f:f.write(f'<<{full_entry_path}>> 文档中出现了关键词:{Prohibited_list}\n')# 如果没有匹配到关键字else:print(f'<<{full_entry_path}>> 文档没有出现关键词:{Prohibited_list}。')

一目了然,共分成两部分:一是匹配到了关键字;二是没有匹配到关键字。

匹配到了:第一步先构建日志文件的路径;第二步将问题写入到text文档,并保存到当前目录(如果当前目录没有该文件,会自动创建。)

没匹配到:就简单提示一下啦。


3.如果目录下还有一个目录

3.1.判断并生成新目录

代码如下:

    # 判断目录下是否还有目录elif os.path.isdir(os.path.join(file_path, entry)):# 使用字符串拼接一下路径,生成新路径(给子目录下的文档使用)file_path = file_path + '\\' + entry      

一般我们保存文件不会一股脑的都保存到一个目录中。最起码目录中再搞一个子目录分一下类。
这个代码就是处理这个问题的。


3.2.获取子目录里的东西并遍历它

代码如下:

        # 获取目录下的所有条目entries = os.listdir(file_path)print(entries)# 遍历当前所有条目for entry_1 in entries:

接下来就是获取一下子录下的所有东西啦。
然后再搞一个遍历结构,一个一个的处理它们。


3.3.接着判断如果是docx文档

代码如下:

            if entry_1.endswith('.docx'):# 使用os.path.join()构造完整文件路径full_entry_path = os.path.join(file_path, entry_1)# 使用 python-docx 打开文档doc = docx.Document(full_entry_path)# 将每一个段落的文本合并为一个字符串text = " ".join([para.text for para in doc.paragraphs])

请参考 《2.1.读取当前文档内容》


3.4.遍历匹配关键字

代码如下:

                # 正则表达式匹配关键字for Prohibited_list in Prohibited_lists:ProhibitedRegex = re.compile(rf'.*{Prohibited_list}+.*')mo = ProhibitedRegex.search(text)

请参考 《2.2.遍历匹配关键字》


3.5.触发匹配并记录日志

代码如下:

                    if mo is not None:# 使用os.path.join()构造完整文件路径full_text_path = os.path.join(file_path, 'problems.txt')# 将问题写入text文档,并保存到当前目录with open(full_text_path, 'a') as f:f.write(f'<<{full_entry_path}>> 文档中出现了关键词:{Prohibited_list}\n')else:print(f'<<{full_entry_path}>> 文档没有出现关键词:{Prohibited_list}。')

请参考 《2.3.触发匹配并记录日志》


总结

以上的代码,包括我之前写的所有代码,都是在Python 3.11版本下写的,其它版本下运行可能会有问题。并且以上代码可以直接按顺序复制粘贴就可以使用,不用再调格式(可以发现越往后代码前面的空格越多,这个就是格式)。用起来有问题可以私信或者评论给我哦。

相关文章:

Python 自动化之处理docx文件(一)

批量筛选docx文档中关键词 文章目录 批量筛选docx文档中关键词前言一、做成什么样子二、基本架构三、前期输入模块1.引入库2.路径输入3.关键词输入 三、数据处理模块1.基本架构2.如果是docx文档2.1.读取当前文档内容2.2.遍历匹配关键字2.3.触发匹配并记录日志 3.如果目录下还有…...

Vue mixins详解

文章目录 前言Vue中的mixins详解什么是mixins简单例子mixins的特点mixins与vuex的区别mixins与公共组件的区别前言 在Vue中,mixins是一种可重用的代码片段,可以在多个组件中共享。它可以包含组件的选项,如data、methods、computed等,以及生命周期钩子函数。 本文将详细介…...

ssl证书问题导致本地启动前端服务报500

报错如下&#xff1a;注意查看报错信息 问题&#xff1a;系统原是http&#xff0c;后台调整为https后&#xff0c;ssl证书有点问题&#xff0c; vue项目本地服务&#xff0c;使用代理&#xff0c;webpack默认&#xff0c;证书强校验&#xff0c;导致请求无法发出&#xff0c;后…...

Rust 学习

Rust 官网&#xff1a;https://www.rust-lang.org/zh-CN/ 模块 库&#xff1a;https://crates.io/ 1、Rust 简介 Rust 语言的主要目标之一是解决传统 系统级编程语言&#xff08;如 C 和 C&#xff09;中常见的安全性问题&#xff0c;例如空指针引用、数据竞争等。为了实现这个…...

1.1 【应用开发】应用开发简介

写在前面 Screen图形子系统基于客户端/服务器模型&#xff0c;其中应用程序是请求图形服务的客户端&#xff08;Screen&#xff09;。它包括一个合成窗口系统作为这些服务之一&#xff0c;这意味着所有应用程序渲染都是在离屏缓冲区上执行的&#xff0c;然后可以在稍后用于更新…...

在windows系统搭建LVGL模拟器(codeblock工程)

1.codeblock准备 下载codeblock(mingw)&#xff0c;安装。可参考网上教程。 2.pc_simulator_win_codeblocks 工程获取 仓库地址&#xff1a;lvgl/lv_port_win_codeblocks: Windows PC simulator project for LVGL embedded GUI Library (github.com) 拉取代码到本地硬盘&…...

2023第十四届蓝桥杯国赛 C/C++ 大学 B 组

文章目录 前言试题 A: 子 2023作者思考题解答案 试题 B: 双子数作者思考题解 试题 C: 班级活动作者思考题解 试题 D: 合并数列作者思考题解 试题 E: 数三角作者思考题解 试题 F: 删边问题作者思考题解 试题 G: AB 路线作者思考题解 试题 H: 抓娃娃作者思考题解 试题 I: 拼数字试…...

如何在页面中加入百度地图

官方文档&#xff1a;jspopularGL | 百度地图API SDK (baidu.com) 添加一下代码就可以实现 <!DOCTYPE html> <html> <head><meta name"viewport" content"initial-scale1.0, user-scalableno"/><meta http-equiv"Conten…...

Windows VC++提升当前进程权限到管理员权限

Windows VC提升当前进程权限 Windows VC提升当前进程权限到管理员权限 Windows VC提升当前进程权限到管理员权限 有时候Windows下我们需要提升当前进程的权限到管理员权限&#xff0c;相关VC代码如下&#xff1a; #ifndef SAFE_CLOSE_HANDLE #define SAFE_CLOSE_HANDLE(handl…...

算法leetcode|92. 反转链表 II(rust重拳出击)

文章目录 92. 反转链表 II&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a;进阶&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 92. 反转链表 II&#xff1a; 给你单链表的…...

Chapter 7 - 3. Congestion Management in Ethernet Storage Networks以太网存储网络的拥塞管理

Pause Threshold for Long Distance Links长途链路的暂停阈值 This section uses the following basic concepts: 本节使用以下基本概念: Bit Time (BT): It is the time taken to transmit one bit. It is the reciprocal of the bit rate. For example, BT of a 10 GbE po…...

优雅玩转实验室服务器(二)传输文件

使用服务器最重要的肯定是传输文件了&#xff0c;我们不仅需要本地的一些资源上传到服务器&#xff0c;好进行实验&#xff0c;也需要将服务器计算得到的实验结果传输到本地&#xff0c;来进行预览或者报告撰写。 首先&#xff0c;由于涉及到服务器操作&#xff0c;我强烈推荐…...

动态面板简介以及ERP原型图案列

动态面板简介以及ERP原型图案列 1.Axure动态面板简介2.使用Axure制作ERP登录界面3.使用Asure完成左侧菜单栏4.使用Axuer完成公告栏5.使用Axuer完成左边侧边栏 1.Axure动态面板简介 在Axure RP中&#xff0c;动态面板是一种强大的交互设计工具&#xff0c;它允许你创建可交互的…...

漏刻有时百度地图API实战开发(12)(切片工具的使用、添加自定义图层TileLayer)

TileLayer向地图中添加自定义图层 var tileLayer new BMap.TileLayer();tileLayer.getTilesUrl function (tileCoord, zoom) {var x tileCoord.x;var y tileCoord.y;return images/tiles/ zoom /tile- x _ y .png;}var lockMap new BMap.MapType(lock_map, tileLaye…...

python 爬虫 m3u8 视频文件 加密解密 整合mp4

文章目录 一、完整代码二、视频分析1. 认识m3u8文件2. 获取密钥&#xff0c;构建解密器3. 下载ts文件4. 合并ts文件为mp4 三、总结 一、完整代码 完整代码如下&#xff1a; import requests from multiprocessing import Pool import re import os from tqdm import tqdm fro…...

mybatis中xml文件容易搞混的属性

目录 第一章、1.1&#xff09;MyBatis中resultMap标签1.2&#xff09;MyBatis的resultType1.3&#xff09;MyBatis的parameterType1.4&#xff09;type属性1.5&#xff09;jdbcType属性1.6&#xff09;javaType属性1.7&#xff09;ofType属性 友情提醒: 先看文章目录&#xff…...

android Retrofit2.0请求 延长超时操作

import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory;public class MyApiClient {private static final String BASE_URL "https://api.example.com/";// 创建 OkHttpClient&#xff0c;并设置超时时间…...

Axure之动态面板轮播图

目录 一.介绍 二.好处 三.动态面板轮播图 四.动态面板多方式登录 五.ERP登录 六.ERP的左侧菜单栏 七.ERP的公告栏 今天就到这了哦&#xff01;&#xff01;&#xff01;希望能帮到你了哦&#xff01;&#xff01;&#xff01; 一.介绍 Axure中的动态面板是一个非常有用的组…...

一文读懂算法中的时间复杂度和空间复杂度,O(1)、O(logn)、O(n)、O(n^2)、O(2^n) 附举例说明,常见的时间复杂度,空间复杂度

时间复杂度和空间复杂度是什么 时间复杂度&#xff08;Time Complexity&#xff09;是描述算法运行时间长短的一个度量。空间复杂度&#xff08;Space Complexity&#xff09;是描述算法在运行过程中所需要的存储空间大小的一个度量。 时间复杂度和空间复杂度是衡量算法性能…...

LWIP热插拔功能实现

0 工具准备 1.lwip 1.4.1 2.RTOS&#xff08;本文使用rt-thread&#xff09;1 使能连接变化回调功能 打开lwipopts.h&#xff0c;将宏定义LWIP_NETIF_LINK_CALLBACK的值设为1&#xff0c;如下&#xff1a; #define LWIP_NETIF_LINK_CALLBACK 1这个宏定义被使能后会将…...

android下的app性能测试应主要针对那些方面,如何开展?

如何开展安卓手机下的App性能测试&#xff0c;对于优秀的测试人员而言&#xff0c;除了要懂得性能测试的步骤流程外&#xff0c;还应该懂的性能测试的一些其他知识&#xff0c;比如性能测试指标、各指标的意义&#xff0c;常用的性能测试工具、如何查看结果分析等等知识。所以本…...

【深度学习】注意力机制(二)

本文介绍一些注意力机制的实现&#xff0c;包括EA/MHSA/SK/DA/EPSA。 【深度学习】注意力机制&#xff08;一&#xff09; 【深度学习】注意力机制&#xff08;三&#xff09; 目录 一、EA&#xff08;External Attention&#xff09; 二、Multi Head Self Attention 三、…...

学习黑马vue

项目分析 项目下载地址&#xff1a;vue-admin-template-master: 学习黑马vue 项目下载后没有环境可参考我的篇文章&#xff0c;算是比较详细&#xff1a;vue安装与配置-CSDN博客 安装这两个插件可格式化代码&#xff0c;vscode这个软件是免费的&#xff0c;官网&#xff1a;…...

gdb本地调试版本移植至ARM-Linux系统

移植ncurses库 本文使用的ncurses版本为ncurses-5.9.tar.gz 下载地址&#xff1a;https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1. 将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2. 解压后进入到ncurses-5.9目录…...

《Linux C编程实战》笔记:实现自己的ls命令

关键函数的功能及说明 1.void display_attribute(struct stat buf,char *name) 函数功能&#xff1a;打印文件名为name的文件信息&#xff0c;如 含义分别为&#xff1a;文件的类型和访问权限&#xff0c;文件的链接数&#xff0c;文件的所有者&#xff0c;文件所有者所属的组…...

Python个人代码随笔(观看无益,请跳过)

异常抛错&#xff1a;一般来说&#xff0c;在程序中&#xff0c;遇到异常时&#xff0c;会从这一层逐层往外抛错&#xff0c;一直抛到最外层&#xff0c;由最外层把错误显示在用户终端。 try:raise ValueError("A value error...") except ValueError:print("V…...

Unity中实现ShaderToy卡通火(总结篇)

文章目录 前言一、把卡通火修改为后处理效果1、在Shader属性面板定义属性接收帧缓存纹理2、在片元着色器对其纹理采样后&#xff0c;与卡通火相加输出请添加图片描述 二、我们自定义卡通火1、修改 _CUTOFF 使卡通火显示在屏幕两侧2、使火附近屏幕偏红色 前言 在之前的文章中&a…...

等保2.0的变化

1法律地位得到确认 《中华人民共和国网络安全法》第21条规定“国家实行网络安全等级保护制度”&#xff0c;要求“网络运营者应当按照网络安全等级保护制度要求&#xff0c;履行安全保护义务”&#xff1b;第31条规定“对于国家关键信息基础设施&#xff0c;在网络安全等级保护…...

漏洞复现-网神SecGate3600防火墙敏感信息泄露漏洞(附漏洞检测脚本)

免责声明 文章中涉及的漏洞均已修复&#xff0c;敏感信息均已做打码处理&#xff0c;文章仅做经验分享用途&#xff0c;切勿当真&#xff0c;未授权的攻击属于非法行为&#xff01;文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的…...

ArkTS入门

代码结构分析 struct Index{ } 「自定义组件&#xff1a;可复用的UI单元」 xxx 「装饰器&#xff1a;用来装饰类结构、方法、变量」 Entry 标记当前组件是入口组件&#xff08;该组件可被独立访问&#xff0c;通俗来讲&#xff1a;它自己就是一个页面&#xff09;Component 用…...