首頁 > 後端開發 > Python教學 > 為什麼我在 Python 文字檔案中的字串搜尋總是返回 True?

為什麼我在 Python 文字檔案中的字串搜尋總是返回 True?

Linda Hamilton
發布: 2024-12-04 07:03:09
原創
246 人瀏覽過

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

在文字檔案中搜尋字串

在嘗試確定文字檔案中是否存在特定字串時,程式可能會遇到意想不到的行為。要糾正此問題,了解錯誤結果背後的根本原因至關重要。

原始程式碼:

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"
登入後複製

錯誤結果的原因:

無論文件中是否存在字串,所提供的程式碼都會始終傳回True,因為以下區塊中「if True」的評估與前面循環的邏輯無關。

if True:
    print "true"
else:
    print "false"
登入後複製

Python with Open:

另一種方法讀取文字檔案是將「with」語句與「open()」函數結合使用。此方法會建立一個自動處理文件關閉的「類似文件」物件。

with open('example.txt') as f:
    if 'blabla' in f.read():
        print("true")
登入後複製

使用記憶體映射:

處理文字檔案的另一種技術是記憶體映射。這種方法將整個檔案作為類似字串的物件讀取到記憶體中,從而可以更快地存取並可以使用正規表示式。

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')
登入後複製

遵循這些建議,您可以準確地搜尋文字檔案中的字串並獲得預期的結果。

以上是為什麼我在 Python 文字檔案中的字串搜尋總是返回 True?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板