如何在文本文件中搜索字符串?

2023-11-24

我想检查字符串是否在文本文件中。如果是,则执行 X。如果不是,则执行 Y。但是,此代码始终返回True因为某些原因。任何人都可以看到出了什么问题吗?

def check():
    datafile = file('example.txt')
    found = False
    for line in datafile:
        if blabla in line:
            found = True
            break

check()
if True:
    print "true"
else:
    print "false"

你总是得到的原因True已经给出了,所以我只提供另一个建议:

如果您的文件不是太大,您可以将其读入字符串,然后使用它(比读取和检查每行更容易且通常更快):

with open('example.txt') as f:
    if 'blabla' in f.read():
        print("true")

另一个技巧:您可以通过使用来缓解可能的内存问题mmap.mmap()创建一个使用底层文件的“类似字符串”的对象(而不是读取内存中的整个文件):

import mmap

with open('example.txt') as f:
    s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
    if s.find('blabla') != -1:
        print('true')

注意:在 python 3 中,mmap 的行为类似于bytearray对象而不是字符串,因此您查找的子序列find()必须是一个bytes对象而不是字符串,例如。s.find(b'blabla'):

#!/usr/bin/env python3
import mmap

with open('example.txt', 'rb', 0) as file, \
     mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s:
    if s.find(b'blabla') != -1:
        print('true')

您还可以使用正则表达式mmap例如,不区分大小写的搜索:if re.search(br'(?i)blabla', s):

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

如何在文本文件中搜索字符串? 的相关文章

随机推荐

  • Java 中抛出异常

    我有一个关于在 Java 中抛出异常的问题 这似乎是我这边的一种误解 我想自己澄清一下 我一直在读到处理异常代码的两种基本方法是 1 在 try 块中使用 throw new 抛出异常 并立即在 catch 块中捕获它 所谓的 try th
  • 所有者绘制的进度条中的动画“发光”(ListView/DataGridView)

    我注意到 NET 2 0 Winforms 中的沼泽标准 ProgressBar 在 Vista 中确实显示为精美的动画发光条 但是 使用 ProgressBarRenderer 通常在尝试在所有者绘制的列表视图 网格视图或其他此类控件中绘
  • ChartJS 折线图 - 多条线,在工具提示上显示一个值

    我正在尝试制作一个图表 该图表必须显示每个客户的帐户变动 我正在尝试做什么 我有树线 第一行 最低余 额 如果客户的余额低于最低余额 余额 他的余额将从他的银行帐户自动加载 第二行 当前余额 第三行 最大余额 如果客户的余额超过最大余额 他
  • 想要使用 VBScript 运行不同文件夹中的 .bat 文件

    我正在尝试使用 VBScript 运行 bat 文件 当在与 bat 相同的文件夹中执行时 我可以让 VBScript 工作 但是 我不知道如何使其在文件夹外成功运行 Dim shell Set shell CreateObject WSc
  • Python 中 C _PyTime_t 的值

    长时间睡觉时 比如跑步time sleep 3 3 3 在 Python 3 中 程序返回 OverflowError 并显示错误消息 时间戳太大 无法转换为 C PyTime t 我最多可以睡多久 该值应为 9223372036 8547
  • 是否可以读取.net中的.eml文件

    我想知道是否可以解析 dot net 中的 eml 和 msg 文件 最好来自内存流 以便我可以在 ASP Net 页面上使用它们 EML MIME 消息 在大多数情况下 EML 是带有邮件消息的 MIME 编码文件 EML 文件的常见来源
  • 如果 web.xml 中有两个与请求匹配的 servlet 映射,会发生什么情况?

    如果 web xml 中有两个与请求匹配的 servlet 映射 会发生什么情况 它选择最具体的吗 例如 如果我有以下 xml 并且请求到达 something 而它转到 someservlet 或 everything else serv
  • 在 Android 的列表视图中滑动时显示删除按钮

    扩展另一个 Stackoverflow 问题 我实现了一些手势检测代码 以便我可以检测列表视图 位于 FrameLayout 中 中的行何时被滑动 我在这里关注了达米安关于如何从适配器获取单个行 视图的问题 答案 如何获取列表视图中行的位置
  • imaplib2 :imap.gmail.com 处理程序 BYE 响应:系统错误

    我正在更新一个 python 脚本 该脚本检查 IMAP 是否有新电子邮件 并在有新电子邮件时发送推送通知 问题是每隔几个小时我就会崩溃一次 起初我不太明白发生了什么 但后来我发现M debug 4这给了我一个很好的输出 但我仍然不明白是什
  • 用于最小化其他应用程序的批处理文件

    我怎样才能有一个打开应用程序的bat文件 让我们称之为firefox exe 我如何调用bat文件或任何其他脚本 即vbs 来最小化应用程序 即firefox exe 然后在一两分钟后关闭它 请注意start min不起作用 下面是我的脚本
  • 如何在 Vaadin 8 中添加验证器?

    在 Vaadin 7 中有一个 addValidator 函数 但在 Vaadin 8 中它不存在 Vaadin 7 示例 TextField user new TextField User user setRequired true us
  • 使用 THREE.OBJLoader 渲染 OBJ 文件

    如何使用 THREE OBJLoader 方法渲染 OBJ 文件 我有一个示例 OBJ 格式 但它不会渲染任何内容 也不会在 chrome 开发工具中看到错误 查看 OBJLoader 使用示例 https github com mrdoo
  • 在 ncurses 中实现文本滚动的推荐方法是什么?

    我正在尝试实现一个 ncurses 应用程序 其文本滚动效果如下 推荐的方法是什么 这是我所知道的 您可以使用scroll将文本缓冲区向上或向下移动 1 行 但是 如果向下滚动 您最终会在顶部出现一个空行 如果向上滚动 则会在底部出现一个空
  • C++ 将十六进制字符串转换为有符号整数

    我想在 C 中将十六进制字符串转换为 32 位有符号整数 例如 我有十六进制字符串 fffefffe 其二进制表示形式为 11111111111111101111111111111110 其有符号整数表示形式为 65538 我如何在 C 中
  • 如何将 groupby() 和 value_counts() 转换为多个饼图/条形图

    假设我有一个数据框 并且正在查看其中的 2 列 2 个系列 使用其中一列 no employees 下面 有人可以帮我弄清楚如何创建 6 个不同的饼图或条形图 每个 no employees 分组 1 个 来说明处理列中 是 否 值的值计数
  • C++程序需要文件关联

    我正在分发一个免费软件产品 该产品可以读取和写入具有唯一扩展名的文本文件 我希望双击这样的文件会自动启动该应用程序 在 Windows 7 Professional 上进行开发时 我设置了一个关联 以便在双击时打开文件 方法是右键单击文件
  • 奇怪的UTF8字符串比较

    我在 UTF8 字符串比较方面遇到了这个问题 我真的不知道 它开始让我头疼 请帮帮我 基本上我有一个来自 UTF8 编码的 xml 文档的字符串 Mina Tidigare anst llningar 当我将该字符串与我自己输入的完全相同的
  • 如何改进印地语文本提取?

    我正在尝试从 PDF 中提取印地语文本 我尝试了所有从 PDF 中提取内容的方法 但都不起作用 有解释为什么它不起作用 但没有答案 所以 我决定将PDF转换为图像 然后使用pytesseract提取文本 我已经下载了印地语训练数据 但这也给
  • MySQL 类型=MyISAM 错误

    本月早些时候 我正在开发我的论坛网站 遇到了一个小问题 不幸的是 除了我的数据库之外 一切都很顺利 我在里面做了一张桌子 叫做users用这个脚本 CREATE TABLE users id int 4 NOT NULL auto incr
  • 如何在文本文件中搜索字符串?

    我想检查字符串是否在文本文件中 如果是 则执行 X 如果不是 则执行 Y 但是 此代码始终返回True因为某些原因 任何人都可以看到出了什么问题吗 def check datafile file example txt found Fals