python查找内容在文件中的第几行(利用了滑动窗口)

python 复制代码
    def find_multiline_content(file_path, multiline_content):
        with open(file_path, 'r') as file:
            # 文件内容
            file_lines = file.readlines()
        # 待检测内容
        multiline_lines = multiline_content.strip().split('\n')
        # 待检测内容总行数
        num_multiline_lines = len(multiline_lines)
        matching_lines = []
        for i in range(len(file_lines) - num_multiline_lines + 1):
            window = file_lines[i:i + num_multiline_lines]
            # all() 函数接受一个可迭代对象作为参数,仅当可迭代对象中的所有项的计算结果为 True,或可迭代对象为空时才返回 True。在所有其他情况下,all() 函数返回 False
            if all(multiline_lines[j].strip() == window[j].strip() for j in range(num_multiline_lines)):
                matching_lines.append(i + 1)
        return matching_lines

window为一个滑动窗口,可以滑动的次数为【文件总行数 - 内容的行数】:

例如文件总共为10行,而内容行数为5行,那么滑动的次数为5次(for i in range(len(file_lines) - num_multiline_lines + 1)的i即为滑动次数)。

我们可以看到①号,从1开始,可以从数字2(滑动1次),滑到数字6(滑动5次)

相关推荐
程序员三藏6 分钟前
Jmeter自动化测试
自动化测试·软件测试·python·测试工具·jmeter·测试用例·接口测试
吴佳浩2 小时前
Langchain 浅出
python·langchain·llm
smj2302_796826522 小时前
解决leetcode第3753题范围内总波动值II
python·算法·leetcode
mortimer3 小时前
破局视频翻译【最后一公里】––从语音克隆到口型对齐的完整工程思路
python·github·aigc
门框研究员5 小时前
解锁Python的强大能力:深入理解描述符
python
子不语1806 小时前
Python——函数
开发语言·python
daidaidaiyu6 小时前
一文入门 LangChain 开发
python·ai
JJ1M87 小时前
用 Python 快速搭建一个支持 HTTPS、CORS 和断点续传的文件服务器
服务器·python·https
汤姆yu7 小时前
基于python大数据的小说数据可视化及预测系统
大数据·python·信息可视化
x***J3488 小时前
Python多线程爬虫
开发语言·爬虫·python