Rumah > pembangunan bahagian belakang > Tutorial Python > Mengapa Carian Rentetan Saya dalam Fail Teks Python Sentiasa Kembali Benar?

Mengapa Carian Rentetan Saya dalam Fail Teks Python Sentiasa Kembali Benar?

Linda Hamilton
Lepaskan: 2024-12-04 07:03:09
asal
302 orang telah melayarinya

Why Does My String Search in Python Text Files Always Return True?

Cari Rentetan dalam Fail Teks

Dalam percubaan untuk menentukan kehadiran rentetan tertentu dalam fail teks, program boleh menghadapi tingkah laku yang tidak dijangka. Untuk membetulkan isu ini, adalah penting untuk memahami sebab asas di sebalik keputusan yang salah.

Kod Asal:

def check():
    datafile = file('example.txt')
    found = False
    for line in datafile:
        if blabla in line:
            found = True
            break

check()
if True:
    print "true"
else:
    print "false"
Salin selepas log masuk

Sebab Keputusan Palsu:

Kod yang disediakan secara konsisten mengembalikan True tanpa mengira kehadiran rentetan dalam fail kerana penilaian 'jika Benar' dalam blok berikut tidak terikat dengan logik gelung sebelumnya.

if True:
    print "true"
else:
    print "false"
Salin selepas log masuk

Python dengan Terbuka:

Pendekatan alternatif untuk membaca fail teks adalah dengan menggunakan pernyataan 'dengan' bersama-sama dengan fungsi 'open()'. Kaedah ini mencipta objek 'seperti fail' yang mengendalikan penutupan fail secara automatik.

with open('example.txt') as f:
    if 'blabla' in f.read():
        print("true")
Salin selepas log masuk

Menggunakan Pemetaan Memori:

Teknik lain untuk bekerja dengan fail teks ialah memori pemetaan. Pendekatan ini membaca keseluruhan fail ke dalam ingatan sebagai objek seperti rentetan, membolehkan akses lebih pantas dan kemungkinan menggunakan ungkapan biasa.

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

Dengan mengikut cadangan ini, anda boleh mencari rentetan dalam fail teks dan dapatkan hasil yang diharapkan.

Atas ialah kandungan terperinci Mengapa Carian Rentetan Saya dalam Fail Teks Python Sentiasa Kembali Benar?. 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