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

相关推荐
Jia-Hui Su26 分钟前
GDSFactory环境配置(PyCharm+Git+KLayout)
git·python·pycharm
学习3人组1 小时前
手写数字识别代码
人工智能·python
古译汉书2 小时前
蓝桥杯算法之基础知识(2)——Python赛道
数据结构·python·算法·蓝桥杯
少陵野小Tommy2 小时前
Python能用古诗词数据库做什么7:根据标题、诗句查找诗歌
开发语言·数据库·python
IT·陈寒2 小时前
新手小白零基础搭建MCP教程
python·ai·tools·mcp
倔强青铜三3 小时前
苦练Python第42天:Python类(Class)初探,面向对象编程入门
人工智能·python·面试
倔强青铜三3 小时前
苦练Python第41天:如何用dir() 函数“透视一切”
人工智能·python·面试
倔强青铜三3 小时前
苦练Python第40天:模块加载与项目组织,让代码像乐高一样可复用!
人工智能·python·面试
跟橙姐学代码4 小时前
Python 集合:人生中最简单的真理,只有一次
前端·python·ipython
偷心伊普西隆4 小时前
Python Excel 通用筛选函数
python·excel·pandas