Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Memeriksa Kehadiran String dalam Fail Teks dalam Python?
Mencari Rentetan dalam Fail Teks
Anda sedang mencari untuk mengesahkan kehadiran rentetan tertentu dalam fail teks dan melaksanakan tindakan yang berbeza berdasarkan hasil. Walau bagaimanapun, di sebalik usaha anda, kod anda secara konsisten mengembalikan True, membuatkan anda bingung. Panduan ini akan membantu anda menentukan isu ini dan menyediakan pendekatan alternatif untuk mencapai matlamat anda.
Kod asal yang anda bentangkan mempunyai kecacatan penting: ia gagal menutup objek fail, yang boleh membawa kepada tingkah laku yang tidak dijangka. Dengan menambahkan cubaan/akhirnya blok dengan penutupan fail yang betul, kod tersebut menjadi boleh dipercayai:
def check(): try: datafile = open('example.txt') found = False for line in datafile: if 'blabla' in line: found = True break finally: datafile.close() check() if found: print("true") else: print("false")
Pertimbangkan menggunakan pernyataan with untuk cara ringkas dan selamat untuk membuka dan menutup fail, kerana ia mengendalikan penutupan fail secara automatik:
with open('example.txt') as datafile: found = False for line in datafile: if 'blabla' in line: found = True break if found: print("true") else: print("false")
Jika fail teks anda bersaiz sederhana, anda boleh menggunakan pendekatan alternatif dengan membaca keseluruhan fail ke dalam rentetan. Kaedah ini selalunya lebih pantas dan lebih mudah daripada mengulangi setiap baris:
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
Untuk fail teks yang luas, anda boleh menggunakan mmap.mmap() untuk mencipta peta memori yang disokong fail, mengelakkan keperluan untuk memuatkan keseluruhan fail ke dalam ingatan:
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')
Ingat, jika menggunakan mmap dengan Python 3, layan urutan untuk find() sebagai objek bait (cth., b'blabla') untuk memadankan gelagat mmaps dalam penterjemah Python.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Kehadiran String dalam Fail Teks dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!