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


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

如果你的文件不是太大,你可以把它读成一个字符串,然后使用它(比每行读取和检查行更容易,也更快):

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()必须是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')