在文件中搜索多个字符串(来自文件)并打印该行

2023-12-25

再次为这里的菜鸟道歉:尝试下面的代码来搜索从关键字读取的多个字符串并搜索f并打印该行。 如果我只有一个关键字,它会起作用,但如果我有多个关键字,它就不起作用。

keywords = input("Please Enter keywords path as c:/example/ \n :")
keys = open((keywords), "r").readline()
with open("c:/saad/saad.txt") as f:
    for line in f:
        if (keys) in line:
            print(line)

查找关键字的挑战之一是定义关键字的含义以及如何解析文件内容以查找完整的关键字集。如果“aa”是关键字,它应该匹配“aaa”还是“aa()”?关键字中可以包含数字吗?

一个简单的解决方案是关键字仅按字母顺序排列,并且应与连续的字母字符串精确匹配,忽略大小写。此外,匹配应该逐行考虑,而不是逐句考虑。我们可以使用正则表达式来查找字母序列和集合来检查包含性,如下所示:

keys.txt

aa bb 

test.txt

aa is good
AA is good
bb is good
cc is not good
aaa is not good

test.py

import re

keyfile = "keys.txt"
testfile = "test.txt"

keys = set(key.lower() for key in 
    re.findall(r'\w+', open(keyfile , "r").readline()))

with open(testfile) as f:
    for line in f:
        words = set(word.lower() for word in re.findall(r'\w+', line))
        if keys & words:
            print(line, end='')

Result:

aa is good
AA is good
bb is good

为比赛的含义添加更多规则,事情会变得更加复杂。

EDIT

假设您每行有一个关键字,并且您只需要子字符串匹配(即“aa”匹配“aaa”)而不是关键字搜索,您可以这样做

keyfile = "keys.txt"
testfile = "test.txt"

keys = [key for key in (line.strip() for line in open(keyfile)) if key]

with open(testfile) as f:
    for line in f:
        for key in keys:
            if key in line:
                print(line, end='')
                break

但我只是猜测你的标准是什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在文件中搜索多个字符串(来自文件)并打印该行 的相关文章

  • 使用 openCV 对图像中的子图像进行通用检测

    免责声明 我是计算机视觉菜鸟 我看过很多关于如何在较大图像中查找特定子图像的堆栈溢出帖子 我的用例有点不同 因为我不希望它是具体的 而且我不确定如何做到这一点 如果可能的话 但我感觉应该如此 我有大量图像数据集 有时 其中一些图像是数据集的
  • 如何生成给定范围内的回文数列表?

    假设范围是 1 X 120 这是我尝试过的 gt gt gt def isPalindrome s check if a number is a Palindrome s str s return s s 1 gt gt gt def ge
  • 导入错误:没有名为 _ssl 的模块

    带 Python 2 7 的 Ubuntu Maverick 我不知道如何解决以下导入错误 gt gt gt import ssl Traceback most recent call last File
  • Python 多处理示例不起作用

    我正在尝试学习如何使用multiprocessing但我无法让它发挥作用 这是代码文档 http docs python org 2 library multiprocessing html from multiprocessing imp
  • 回形针不支持 .doc 文件

    在 Rails 4 0 2 中 我使用回形针 gem 上传文件 但它不支持 doc 文件 在文件上传字段下方 显示一条错误消息 扩展名与其内容不匹配 在模型中 检查内容类型的验证如下 validates attachment content
  • 如何使用 Scrapy 从网站获取所有纯文本?

    我希望在 HTML 呈现后 可以从网站上看到所有文本 我正在使用 Scrapy 框架使用 Python 工作 和xpath body text 我能够获取它 但是带有 HTML 标签 而且我只想要文本 有什么解决办法吗 最简单的选择是ext
  • 打破嵌套循环[重复]

    这个问题在这里已经有答案了 有没有比抛出异常更简单的方法来打破嵌套循环 在Perl https en wikipedia org wiki Perl 您可以为每个循环指定标签 并且至少继续一个外循环 for x in range 10 fo
  • __del__ 真的是析构函数吗?

    我主要用 C 做事情 其中 析构函数方法实际上是为了销毁所获取的资源 最近我开始使用python 这真的很有趣而且很棒 我开始了解到它有像java一样的GC 因此 没有过分强调对象所有权 构造和销毁 据我所知 init 方法对我来说在 py
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • 如何将 numpy.matrix 提高到非整数幂?

    The 运算符为numpy matrix不支持非整数幂 gt gt gt m matrix 1 0 0 5 0 5 gt gt gt m 2 5 TypeError exponent must be an integer 我想要的是 oct
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 如何在 Django 中使用并发进程记录到单个文件而不使用独占锁

    给定一个在多个服务器上同时执行的 Django 应用程序 该应用程序如何记录到单个共享日志文件 在网络共享中 而不保持该文件以独占模式永久打开 当您想要利用日志流时 这种情况适用于 Windows Azure 网站上托管的 Django 应
  • Python:计算字典的重复值

    我有一本字典如下 dictA unit1 test1 alpha unit1 test2 beta unit2 test1 alpha unit2 test2 gamma unit3 test1 delta unit3 test2 gamm
  • 检查所有值是否作为字典中的键存在

    我有一个值列表和一本字典 我想确保列表中的每个值都作为字典中的键存在 目前我正在使用两组来确定字典中是否存在任何值 unmapped set foo set bar keys 有没有更Pythonic的方法来测试这个 感觉有点像黑客 您的方
  • 对输入求 Keras 模型的导数返回全零

    所以我有一个 Keras 模型 我想将模型的梯度应用于其输入 这就是我所做的 import tensorflow as tf from keras models import Sequential from keras layers imp
  • 循环标记时出现“ValueError:无法识别的标记样式 -d”

    我正在尝试编码pyplot允许不同标记样式的绘图 这些图是循环生成的 标记是从列表中选取的 为了演示目的 我还提供了一个颜色列表 版本是Python 2 7 9 IPython 3 0 0 matplotlib 1 4 3 这是一个简单的代
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 协方差矩阵的对角元素不是 1 pandas/numpy

    我有以下数据框 A B 0 1 5 1 2 6 2 3 7 3 4 8 我想计算协方差 a df iloc 0 values b df iloc 1 values 使用 numpy 作为 cov numpy cov a b I get ar
  • Python - 字典和列表相交

    给定以下数据结构 找出这两种数据结构共有的交集键的最有效方法是什么 dict1 2A 3A 4B list1 2A 4B Expected output 2A 4B 如果这也能产生更快的输出 我可以将列表 不是 dict1 组织到任何其他数
  • Python:元类属性有时会覆盖类属性?

    下面代码的结果让我感到困惑 class MyClass type property def a self return 1 class MyObject object metaclass MyClass a 2 print MyObject

随机推荐

  • 与 pytest 一起使用时禁用日志记录

    我在同时使用 pytest 和日志记录时遇到问题 当我单独运行一个程序时 我可以看到它的消息打印在屏幕上以及文件 test log 中 python3 main py gt prints on terminal and also in te
  • 确定绝对id

    如何确定organizationUnit的绝对id 来自 webapp resources acme organizationUnit xhtml 当我从树中选择一个节点时 organizationUnit 应显示所选节点 我无法使用相对
  • AVFoundation 使用 Alpha 通道解码 prores4444 电影

    我正在尝试使用 Swift 在 iOS 上使用 alpha 通道解码 prores4444 视频 将其作为复杂的动画叠加在用户视频上并将其导出到他的库中 AVFoundation 文档不是那么好 我正在努力寻找任何代码示例 当我尝试将下面的
  • PHP中如何检查一个方法是否是静态的?

    我需要知道该方法是否在给定其名称和包含该方法的类的名称的情况下声明为静态 method exists提供true对于静态和非静态方法 下面是关于如何使用 ReflectionMethod 的更清晰的方法 MethodChecker new
  • Python 中的字符串反转

    我接受了一个整数输入并尝试在 Python 中反转它 但徒劳 我把它改成了字符串 但仍然不能 有什么办法可以逆转吗 有没有内置的功能 我无法将整数转换为列表 因此无法应用反向函数 您可以使用切片运算符来反转字符串 s hello world
  • nginx proxy_pass 通过 https_proxy

    我正在尝试使用此配置设置 nginx 要访问 backend mygreat server com 我必须通过我的公司代理 即 myproxy server com 80 因此 我将其添加到 etc environment 中 https
  • 如何获取最新的 Chrome(版本 55)以允许混合内容?

    我有一个 chrome 扩展 它在开发中使用 HTTP 进行通信 在生产中使用 HTTPS 进行通信 我从使用 HTTPS 的网页运行它 当我在开发模式下使用此扩展时 出现以下错误 混合内容 页面位于 https somesite com
  • FFmpeg 将 .mp3 输出保存到变量中

    在我的应用程序中 我想修改各种mp3 然后将它们混合在一起 我知道我可以在 FFmpeg 中使用单个命令行来完成此操作 但它最终可能会非常混乱 因为我需要在每个样本上使用各种过滤器 而我有五个过滤器 我的想法是单独编辑每个样本 将它们保存到
  • LDAP 服务器不可用

    我对此完全是新手 尝试连接到 LDAP 服务器PrincipalContext 我已经尝试了该网站上的所有解决方案 但均无济于事 我尝试过的事情 PrincipalContext insPrincipalContext new Princi
  • 更好的过滤集合模式

    我有一个名为Games我希望用户使用复选框来过滤集合 每次选中 取消选中复选框时 都会调用流星订阅来显示相应的内容Games 以下是订阅的示例 不是正确的 mongo 代码 region east west eu skill casual
  • YAJSW窗口服务未启动

    我有一个 Java 应用程序 我希望它作为窗口服务运行 为此我选择了 YAJSW 我已经使用我的 Java 进程 ID 运行了 GetConfig bat 并且它已生成配置文件 我已将用户名和密码放入配置文件中并运行 runConsole
  • R XTS to.mines5(),未按“I”预期进行转换

    您好 我正在将一些 1 分钟的数据转换为 5 分钟的数据 我发现第一次增量需要 4 分钟 然后继续执行 5 分钟的增量 我尝试过使用所有 indexAt 参数 但没有一个给我想要的 从 5 开始 然后是 10 15 20 等 我试过了 x5
  • 在2.0.0M1中安装Grails Spock插件

    我正在尝试 Grails 2 0 0M1 和 Springsource Tool Suite 2 7 1 但在安装 spock 插件时遇到问题 当我运行 grails install plugin spock 0 6 groovy 1 8
  • 如何在 Android 市场中从免费应用程序链接到付费应用程序?

    如果我在 Android 市场上有付费应用程序的免费版本 如何在免费应用程序中放置一个按钮来打开市场中的付费版本 更好的是使用 market details 而不是 market search Intent intent new Inten
  • 模拟器网络IP地址和虚拟路由器

    我在 Windows 上使用 Android 模拟器 Android 开发人员文档表示 模拟器的每个实例都在虚拟路由器 防火墙服务后面运行 每个实例的虚拟路由器管理 10 0 2 24 网络地址空间 但是 当我使用以下命令连接到模拟器时ad
  • 如何检查程序空闲时间而不是系统空闲时间?

    我有一个程序 偶尔需要递归地扫描一些目录 这部分程序的改进正在酝酿中 但暂时还没有准备好 为了避免用户必须等待此扫描 我希望尽可能在用户不使用我的程序时进行扫描 我打算通过运行一个检查空闲时间的计时器来实现它 我发现以下内容用于检查系统空闲
  • 带有递归的字符串排列

    我是一名java初学者 正在尝试从java编程书中进行字符串排列练习 我定义了两种方法 public static void displayPermutation String s public static void displayPer
  • 预留座位软件:C#即时抽取大量座位

    我正在使用 C 构建座位预订软件 但我很困惑如何立即抽取大量座位 我正在尝试三种方法 即 使用用户控件 public void DrawUsercontrol int x int y int space 4 int SeatLimit 16
  • 添加动态/通配符 FACEBOOK 有效的 OAuth 重定向 URI [重复]

    这个问题在这里已经有答案了 我希望能够在不同的子域上登录 Facebook 例如 www 123 mywebsite com www 456 mywebsite com 有办法实现这一点吗 而不是手动将它们一一添加 也许像通配符 例如 ww
  • 在文件中搜索多个字符串(来自文件)并打印该行

    再次为这里的菜鸟道歉 尝试下面的代码来搜索从关键字读取的多个字符串并搜索f并打印该行 如果我只有一个关键字 它会起作用 但如果我有多个关键字 它就不起作用 keywords input Please Enter keywords path