文本文件中的搜索字符串:名称未定义错误python3



嗨,我想用python搜索文本文件中的字符串。我在用蟒蛇。

这是我的代码:-

def check():
        datafile = open('testfile.txt')
        found = False
        for line in datafile:
            if good in line:
                found = True
                break
        return found
found = check()
if found:
    print ("String found")
else:
    print ("not found")

这里testfile.txt是一个包含字符串"good"的文本文件。因此,预期的输出应该是"找到字符串"。但是,它显示错误"NameError:name‘good’is not defined"。

由于要查找字符串'good',因此需要用引号将其括起来。现在,程序认为您正在尝试查找名为good的变量中存储的内容,但该变量不存在。

if 'good' in line:

这应该能解决你的问题。

编辑以回应评论:您可以返回字符串所在的行,并将其添加到打印语句中。

def check():
        datafile = open('testfile.txt')
        found = False
        for line in datafile:
            if 'good' in line:
                found = True
                break
        return found, line
found, line = check()
if found:
    print ("String found: " + line)
else:
    print ("not found")

您忘记了在想要成为字符串的内容周围加引号
good更改为'good'"good"将解决您的问题。

不过,这段代码还有一些其他问题,您忘记了关闭文件
您的代码应该更像:

def check():
    with open('testfile.txt') as datafile:
        found = False
        for line in datafile:
            if 'good' in line:
                found = True
                break
    return found

如果您在IDE(如IDLE)中编辑python,您会发现类似这样的错误更容易,因为语法高亮显示通常会高亮显示字符串,但不会高亮显示变量名。

您可以使用x.find('my string')对象,它检查字符串并返回您要查找的子字符串被提及的次数。如果它不存在,它应该返回一个0。也许这是一种更像蟒蛇的方式??希望这有帮助=)

最新更新