在文字檔案中搜尋字串
在嘗試確定文字檔案中是否存在特定字串時,程式可能會遇到意想不到的行為。要糾正此問題,了解錯誤結果背後的根本原因至關重要。
原始程式碼:
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中文網其他相關文章!