使用 python 在 txt 文件中查找字符串的最佳方法是什么?

2024-06-09

使用 python 在 txt 文件中查找字符串一定有多种方法, 但最好的方法是什么? (为了速度,为了资源..)

我的第一个想法如下。

file = open('/home/socfw/src/edl/outbound_monthly.txt')

inputIP = '127.0.0.1'

while (1):
    line = file.readline()
    if inputIP in line:
        print("ok")
        break

但是,正确使用Web服务太慢了(这实际上是我的Web服务的后端逻辑) txt 文件如下所示

test.txt(IPV4地址在这里,它们几乎有60k)

x.x.x.x
x.x.x.x
.
.
.
.

我的源代码导致 CPU 100% 持续几分钟,所以我想找到另一种方法。 有什么好的解决办法吗? 提前致谢。


谢谢你回答我。 我改变了我的来源如下。

with open('/home/socfw/src/edl/outbound_monthly.txt') as outMonIPs:
    ip = set(line.strip() for line in outMonIPs)

inputIP = '111.90.150.249'
#while True:
if inputIP in ip:
    print("ok")
#        break
else:
    print("no")
#        break

我还有一个问题,我应该使用loop为了这个工作? 我认为当我将整个文件保存在内存中时,不再需要循环。


如果您必须使用文本文件,您可以尝试将整个文件读入内存,而不是逐行搜索以加快速度。 (如果将所有文件读入内存,则不再需要循环)

您可以尝试使用 grep 或 find,而不是编写 python 脚本来进行搜索。

您应该考虑将数据放入数据库并查询以查找匹配项。这种方法应该具有更高的资源效率并且应该更快,因为数据库可以使用索引,并且它们不必将整个数据集读入内存来查找匹配项。 如果您的应用程序足够简单,您也许可以使用 sqlite。

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

使用 python 在 txt 文件中查找字符串的最佳方法是什么? 的相关文章

  • Flask-SQLAlchemy 构造函数

    在 Flask SQLAlchemy 教程中 定义了 User 模型的构造函数 from flask import Flask from flask ext sqlalchemy import SQLAlchemy app Flask na
  • 从 Windows 文件系统中的任何位置运行 python 脚本

    我已经实现了一些实用程序来满足我的需要 以使用 Python 简化开发 需要多个 py文件和一些额外的 template文件 重命名 txt file 我希望能够从文件系统中的任何位置使用此实用程序 例如 如果我当前位于某个文件夹中 我想运
  • python中的多服务器监控/自动重启

    我有 2 个服务器程序 必须使用 GNU Screen 启动 我想使用基于 Python 的程序来强化这些服务器 防止崩溃 该程序启动每个屏幕会话 然后监视服务器进程 如果服务器进程崩溃 我需要 python 代码来终止无关的屏幕会话并再次
  • Python select() 行为很奇怪

    我在理解 select select 的行为时遇到一些困难 请考虑以下 Python 程序 def str to hex s def dig n if n gt 9 return chr 65 10 n else return chr 48
  • 清理嵌套的 Try/Excepts

    我刚刚编写了一段代码 令我印象深刻的是 它的嵌套程度远远超过了最佳值 我想了解如何改进其风格 特别是使其更符合 扁平优于嵌套 的原则 for app in apps if app split 1 0 zc only look for cro
  • 使用python,自动确定用户当前时区的最准确方法是什么

    我已经验证 dateutils tz tzlocal 在heroku上不起作用 即使它起作用 它不是只是从计算机的操作系统中获取tz 而不是用户吗 如果没有存储用户时区 有什么方法可以确定请求来自哪里 我用的是烧瓶 Twitter 确实有一
  • 我可以使用 Python 访问 ImageMagick API 吗?

    我需要使用图像魔术师 http www imagemagick org script index php因为 PIL 没有我正在寻找的可用图像功能量 但是 我想使用Python python 绑定 PythonMagick 自 2009 年
  • Django-获取外键对象列表

    假设我有以下模型 class ParentModel models Model name models CharField child models ForeignKey ChildModel class ChildModel models
  • 当我执行 pip --version 时,它显示错误为 ImportError:没有名为 pyparsing 的模块

    我尝试安装 卸载py解析以及它不起作用 我被这个问题困住了 我还必须安装额外的库 这是错误消息 Traceback most recent call last File usr bin pip line 5 in
  • tf.reshape 与 tf.contrib.layers.flatten

    所以我正在运行 CNN 来解决分类问题 我有 3 个转换层和 3 个池化层 P3是最后一个池化层的输出 其维度为 Batch size 4 12 48 我想将该矩阵展平为 Batch size 2304 尺寸矩阵 为2304 4 12 48
  • 限制并行工作的线程数量

    我正在创建一个函数 将文件从本地计算机复制到远程创建线程以并行执行 sftp def copyToServer does copy file given host name and credentials for i in hostsLis
  • AttributeError:模块“rest_framework.serializers”没有属性“NullBooleanField”

    升级后djangorest框架 https pypi org project djangorestframework from djangorestframework 3 13 1 to djangorestframework 3 14 0
  • 使用 Flask 测试客户端请求传递 cookie 标头

    我在让 Flask 测试客户端传递 cookie 时遇到问题 这段代码曾经有效 我认为我的环境中的某些内容发生了变化 这打破了这一点 我最近创建了一个新的 Python 3 7 virtualenv 并安装了 Flask 1 0 2 fro
  • Scipy - 求矩阵列空间的基数

    我正在尝试编写一个简单的单纯形算法 其第一步是找到一个基本的可行解决方案 选择 A 的线性独立列的一组 B 将 x 中与不在 B 中的列相对应的所有分量设置为零 求解 m 个所得方程以确定 x 的分量 这些是基本变量 我知道解决方案将涉及使
  • django 返回记录的最近日期

    我正在尝试从用户的多个记录中返回最近的日期 当用户创建文档时 创建日期存储在 CreatedDocumentDetails 模型中 我无法返回用户最近创建的文档的日期 我问这个关于SO的问题 https stackoverflow com
  • Python 子进程在发出 HTTP 请求时无提示崩溃

    我在组合多处理 请求 或 urllib2 和 nltk 时遇到问题 这是一个非常简单的代码 gt gt gt from multiprocessing import Process gt gt gt import requests gt g
  • python 日志记录:当级别 >= ERROR 时,通过电子邮件将整个日志文件作为附件发送

    我的日志系统有一些处理程序 日志文件 INFO 电子邮件处理程序 gt ERROR 和用于可选调试的流处理程序 当发生错误 异常 关键消息时 我希望电子邮件处理程序将日志文件从文件处理程序附加到错误电子邮件 import logging d
  • Scipy odeint 非负解

    显然 从 ODE 求解器获得非负解并非易事 https stackoverflow com questions 6977107 solving a delay differential equation dde system constra
  • Pandas 如何删除包含所需字符串的行

    我想删除包含所需字符串的所有行 假设我有以下数据框 A B C 1 a x w g n 3 l p j p v 我想删除包含字符串的所有行p 我已经搜索过它 但大多数答案都是基于列名称 就我而言 我不会知道它可以出现在任何列中 输出数据帧应
  • Django 类视图未返回 HttpResponse 对象。它返回 None 相反

    urls py from housepost views import ListingPost url r house post ListingPost as view name post house views py from djang

随机推荐