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次)

相关推荐
Thomas.Sir12 小时前
智能革命:AI如何重塑金融风控与信贷审批的底层逻辑
人工智能·python·ai·风控
流星蝴蝶没有剑12 小时前
CoPaw Agent 对接 Python 客户端开发指南:实现流式响应与实时打印
开发语言·python
小陈工12 小时前
Python Web开发入门(十八):跨域问题解决方案——从“为什么我的请求被拦了“到“我让浏览器乖乖听话“
开发语言·python·机器学习·架构·数据挖掘·回归·状态模式
赵优秀一一12 小时前
Python 工程化基础1:环境(conda)、pip、requirements.txt
linux·开发语言·python
kaizq12 小时前
Python-Nacos电商订单分布微服系统开发
python·nacos·分布微服务·ai-ima-glm·电商订单
kishu_iOS&AI13 小时前
机器学习 —— 线性回归(实例)
人工智能·python·机器学习·线性回归
架构师老Y13 小时前
007、微服务架构设计与服务拆分策略
python·微服务·架构
skilllite作者13 小时前
SkillLite 多入口架构实战:CLI / Python SDK / MCP / Desktop / Swarm 一页理清
开发语言·人工智能·python·安全·架构·rust·agentskills
ZC跨境爬虫13 小时前
批量爬取小说章节并优化排版(附完整可运行脚本)
前端·爬虫·python·自动化
ths51213 小时前
Python 正则表达式实战指南:从入门到精通(12 个高频案例)(三)
python·正则表达式