Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memeriksa Kehadiran String dalam Fail Teks dalam Python?

Bagaimanakah Saya Boleh Memeriksa Kehadiran String dalam Fail Teks dalam Python?

Barbara Streisand
Lepaskan: 2024-12-10 07:38:12
asal
342 orang telah melayarinya

How Can I Reliably Check for a String's Presence in a Text File in 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")
Salin selepas log masuk

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")
Salin selepas log masuk

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")
Salin selepas log masuk

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')
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan