首页 > 后端开发 > Python教程 > 为什么我在 Python 文本文件中的字符串搜索总是返回 True?

为什么我在 Python 文本文件中的字符串搜索总是返回 True?

Linda Hamilton
发布: 2024-12-04 07:03:09
原创
278 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板