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

相关推荐
徐先生 @_@|||8 小时前
基于Translation插件实现在pycharm本地翻译并阅读英文资料
ide·python·pycharm
xcbrand8 小时前
文旅行业品牌策划公司找哪家
大数据·运维·人工智能·python
好家伙VCC9 小时前
**发散创新:基于Rust的轻量级权限管理库设计与开源许可证实践**在现代分布式系统中,**权限控制(RBAC
java·开发语言·python·rust·开源
Dxy12393102169 小时前
Python序列标注模型上下文纠错详解
开发语言·python
ZhengEnCi9 小时前
P2H-Python字符串格式化完全指南-format和f-string的Python编程利器
python
HaiXCoder9 小时前
python从入门到精通-第5章: 函数式编程 — Python的函数式风格
python
HaiXCoder9 小时前
python从入门到精通-第0章: 思维模式碰撞
python
HaiXCoder9 小时前
python从入门到精通-第3章: 数据结构 — Python的"瑞士军刀
python
Orange_sparkle9 小时前
learn claude code学习记录-S02
java·python·学习
小郑加油9 小时前
python学习Day1:python的安装与环境搭载
python·学习·小白记录,保姆式教程