python学习之在多个文件中依次查找多个关键词

该文章介绍了如何利用Python编写脚本,通过正则表达式re.compile和findall方法,实现对多个文档中多个警告关键词的高效查找。脚本可以处理单个文件以及整个目录下的多个文件,最后将结果整合并写入文件,提高了日志分析的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目中经常遇到一些简单但是重复性强的工作,比如确认log中是否报了一些有风险的warning。我通常是用搜索关键字的方法或者grep命令找我关注的warning,但是效率低且不能保证全面。如果有一个自动查找的脚本就好了,这篇博文记录如何在多个文档中一次查找多个关键词。

查找多个关键词

以前做项目的时候遇到过类似的问题,参考之前的解决方案:Python学习之re.compile与findall即可实现多个关键字的依次查找。总结下来就是两个关键点:

  • re.compile()正则表达式匹配
  • serach()搜索文件内容
import re
# warning key_wds that we cares
key_warn_lst = ['WARNING1', 'WARNING2', 'WARNING3', 'WARNING4']

def filter_key_wds(file_dir)
	key_warn_num_lst = []
	with open(file_dir, 'r') as f_in:
		file_ctxt = f_in.read()
		# extract statistical warnings part
		warn_part = re.search(r'\d+ warnings[(](.*?)[)]', file_ctxt, re.S).group()
		# search key_warns we cares among warning parts
		for each_warn 
### 如何使用 Python 同时读取多个 CSV 文件 在处理大量数据时,通常需要将多个 CSV 文件的内容合并成一个统一的数据集以便进一步分析。以下是实现这一目标的具体方法。 可以通过 `glob` 模块获取指定路径下的所有 CSV 文件名列表,并利用 Pandas 的 `read_csv()` 方法逐一加载这些文件并将其合并为单个 DataFrame 对象[^4]。 下面提供了一个完整的代码示例: ```python import pandas as pd import glob # 定义包含CSV文件的目录路径 path = "your_directory_path/*.csv" # 使用glob模块找到该路径下所有的CSV文件 all_files = glob.glob(path) # 创建一个空列表用于存储每个CSV文件对应的DataFrame对象 list_of_dataframes = [] for filename in all_files: df = pd.read_csv(filename, index_col=None, header=0) # 加载当前CSV文件 list_of_dataframes.append(df) # 将其加入到列表中 # 利用concat函数沿垂直方向连接所有DataFrame对象成为一个整体的大表 combined_df = pd.concat(list_of_dataframes, axis=0, ignore_index=True) print(combined_df.head()) ``` 此段程序首先定义了存放目标CSV文档所在的文件夹位置;接着通过调用`glob.glob()`函数检索匹配模式的所有具体文件名称;随后遍历每一个查找到的结果项,依次运用Pandas库中的`pd.read_csv()`命令完成单独表格向内存结构转化的过程;最后借助于`pd.concat()`操作符把之前累积起来的小型片段组合成为最终版本的整体视图[^4]。 #### 注意事项 - 替换 `"your_directory_path"` 成实际存放 csv 文件的真实地址。 - 如果各个子集中存在重复索引,则设置参数 `ignore_index=True` 来重新编号新生成框架内的条目序号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值