嗨,我想用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。也许这是一种更像蟒蛇的方式??希望这有帮助=)