আপনি সর্বদা যে কারণটি পেয়েছেন 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):