कारण जो आपको हमेशा मिला 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')
ध्यान दें: पायथन 3 में, मिमीपैप्स 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):