python 文件中搜索字符串_在txt文件中搜索字符串Python

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

如果你的文件不是太大,你可以读它到一个字符串,只是使用(更容易,通常比每行阅读和检查行更快):

if 'blabla' in open('example.txt').read():

print "true"

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

import mmap

f = open('example.txt')

s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)

if s.find('blabla') != -1:

print 'true'

注意:在python 3中,mmaps的行为像bytearray对象而不是字符串,所以你用find()寻找的子序列必须是一个字节对象,而不是一个字符串,例如。 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):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值