Home >Backend Development >Python Tutorial >Why Does My String Search Function Always Return True?
Searching for Strings in Text Files
Seeking to detect the presence of a particular string within a text file, you've stumbled upon an issue where the code unexpectedly returns True regardless of the string's existence. Let's investigate the code and rectify the issue:
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"
The variable name blabla suggests that there's a string you're trying to find, but it's not defined within the code. This is likely the source of the issue where the code always returns True. Ensure that you define blabla with the appropriate string you're searching for before running the check() function.
Alternative Approach using file read:
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
This method reads the entire file into memory, enabling direct searching for the string. However, keep in mind that this approach might not be suitable for large files due to memory limitations.
mmap Approach:
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')
mmap allows creating a memory-mapped representation of the file, effectively creating a "string-like" object that uses the underlying file without reading the entire file into memory, reducing memory usage.
The above is the detailed content of Why Does My String Search Function Always Return True?. For more information, please follow other related articles on the PHP Chinese website!