使用 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(使用前将#替换为@)